Inter-process Communication Between Smart Client Desktop Application and VB5 Desktop Application
30 Dec 2008
Greetings, all. I've been developing desktop applications using SCSF (Smart Client Software Factory) with C# .NET 2.0. Normally, all the apps I've developed haven't had to do any sort of IPC with other desktop apps, though. What I'm working on now is developing a smart client desktop application that connects to a CTI server and front ends the CTI functionality through a "soft phone" form. Our customer has an ancient VB5 desktop application that they want to be able to launch our CTI application from. In addition to the soft phone functionality, our CTI app is to provide the VB5 application with new incoming phone call data on every phone call and allow the VB5 application to make a call to a method on our CTI application that updates the login credentials.
What would be the best way to implement this ? Correct me if I'm wrong, but I don't think classic COM alone would be a good idea because .NET objects exposed to COM as CCWs can't be run as out-of-process/local servers, thereby potentially allowing our app to negatively affect the VB5 app in the event of an unhandled exception. I don't see how COM+/DCOM could be used, either . That seems like overkill and overcomplication since our CTI app isn't really a service and it needs to fire events back to the VB5 client app (plus I don't need object pooling, transactions, etc). What I've been thinking of doing is just making a socket client in the form of a classic COM object that the VB5 app can use (in-process is the only option), which will talk to our CTI app that will have some socket server functionality.
Does anyone have some recommendations on whether or not IPC through sockets would be the best idea in this case ? Both the VB5 app and CTI app will be run on the same machine. Thanks !