2
votes

I have a .NET \ C# class that loads a structure into memory. There's a C++ application on the same machine that need to be able to query the in memory structure.

My question is around performance. I could expose the functionality as a COM object that the C++ could call via COM ... or I could implement it as a WCF service that I believe the C++ application would be able to query via Named Pipes ...

Does anyone have any experience with performance either way? I've fond some great stats comparing WCF Named Pipes Vs. TCP vs. HTTP, but I don't know enough about COM to make an educated decision on how it'll perform. Any thoughts would be appreciated.

Thanks Warrick

1
Just to point out you don't need WCF for named pipes. Also have you considered memory mapped files for really fast inter process comms?Preet Sangha
Thanks, I like the idea of WCF as it allows me to expose the service via HTTP later on. I have not looked into memory mapped files .. thanks for the idea, I'll look into that.Warrick FitzGerald

1 Answers

1
votes

MS SQL works via named pipes (based on tcp channel, generally speaking), so I think it's perfomance is good enough.

Take a look at Choosing Communication Options in .NET

AFAIK today WCF's named pipes/tcp conversation is recommended way to do interprocessing via network (LAN or global). WCF is the successor of Remoting and supplants COM/DCOM for managed code. But remoting is not deprecated/legacy yet and can be used for cross-appdomain binary communication.