In our standard software department we are devloping fax solutions at least for three years. The visendo fax server is a quite modern solution wich uses socket communication, SMTP and POP3. So faxes can be send and received over existing infrastructure like Exchange. The printer driver communicate through a port with the server so you can also fax from every internet connected point. The administration is build with MMC and the config is stored in XML files. Development language is 100% Microsoft C++.
I am quite unhappy with building user interfaces and also developing MMC. Hard, expensive and full of possible bugs. So we are going to change the architecture.
Our idea is to build based on cassini code a 2nd managed service. ASP.NET is used to make the UI. The central question is how to communicate between the unmanged Fax Service and the managed Service.
1. migration the unmaged code to .net is expensive full of risk an nonsense
2. Using sockets is slow, unsafe and expensive to implement
3. Using webservices is slow
4. Shared memory ( our dev team love it)
5. we have decided to expose al methods from the unmanaged service als COM. Then we build a manged wrapper and use this wrapper classes in ASP.NET. To understand: eg ReadMSN gives a list of stroed MSN (used for ISDN)
I like the idea but have doubts about our step back to COM. COM is fast, easy to implement and quite secure on the machine.
What do you think about it? Feel free to answere here.