views:

116

answers:

1

I've been working in .net for a few years, and this is my first foray into IPC. I know of the various possibilities for doing IPC (Named Pipes, Remoting, Clipboard Managment, Win32API messaging), but I don't know whats "right for me". I plan on using the following setup:

Site Object: This is the reason the ipc is needed. It will be a single object representing a collection of files on a remote machine (may be local, might be truly remote).

Server: The server.exe process will monitor the file system mentioned above, and update the Site Object This process will then keep any\all clients connected to the server updated, giving out new copies of the Site object at regular intervals (Either from client forced updates, or server automatic updates).

Client: Needs to be regularly updated about the "Site". It also wants to have the ability to modify the Site object (or at least send messages to the server asking it to make specific modifications.

TL;DR version: Singleton instance on the server (which will actively modify the singleton), with multiple clients monitoring the singleton. The client can change (or request the server to change) the singleton.

Notes: All .net, no mixing of platforms. I've looked into Remoting, but it seemed out of context for the application I'd like to to have (or I didn't understand it fully).

I'm not sure if these is better fit for a community wiki or not, feel free to jerk it around.

Thanks

+3  A: 

.NET Remoting is just the feature of .NET 2.0 - a set of techniques and libraries that simplifies the usage of common inter-process commutication ways (Named pipes, network sockets, HTTP post/get queries)

In .NET 3.0 it is WCF.

So the lyrics, as for you: use TCP sockets between machines on the secured LAN, use HTTP (Soap, WebMethods, or just HTTP) on the Internet and IPC on one machine to communicate processes (client and server) The platform you choose (.NET 2.0 Remoting or .NET 3.0 WCF) - it's up to you.

P.S.: I use .NET 2.0 Remoting framework still.

skaeff
Thanks for the info, there's an added caveat that we're doing it in Visual C++.net, and WCF isn't available, so I'm pretty sure I just need to keep grinding to figure out how to make remoting fit.
greggorob64