I have two winforms apps that would like to talk to each other.  In fact, two 
instances of the same winform app.

I struggle to find a good approach for this, in .NET.  Remoting?  Yeah, sure -- but I 
don't want to open up a TCP port (for a variety of reasons, from security 
threat-surface considerations, to TS-awareness, to not wanting to trample the TCP 
port-space).  And I can't require IIS to be installed and running.

I'm considering using Jonathan Hawkins' NamedPipe-based remoting channel [1]...  is 
that what everybody else is using?

[1]  http://www.gotdotnet.com/userfiles/jhawk/NamedPipeChannel.zip

The way I see it, namedpipes beat tcp in two ways:  (1) the space of endpoints is 
vastly larger (about 256 chars vs 15 bits), thus avoiding conflicts with other apps, 
and (2) the pipe name can be scoped to the current session, via the "Local\" prefix, 
thus achieving ts-awareness.

But I'm still concerned about the threat surface of listening on a named pipe...  the 
pipe channel allows me to specify a security descriptor -- even the default is 
probably ok -- but I just don't believe my innocent little winforms app should be 
listening for signals on the network.

I just can't believe there's no IPC mechanism built into .NET, out of the box.  Am I 
missing something?

Longing for the days of ncalrpc...
-Shawn
http://www.arithex.com/

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to