There seems to be a lot of enmity against DCOM, and I\'m curious to understand why. For a company still writing to the Win32 SKD using C++, is there any real reason not to use D
I dislike COM/DCOM because "Catastrophic failure"
is the most unhelpful error message in the history of error messages.
If you only want to develop in C++ and deploy in controlled network, it may still be a good choice.
I implemented a large system using DCOM in the late 90's. Although it worked pretty well, there were a couple of issues. For starters it uses unpredictable port numbers for communication. It is not scalable, and you are much better off using WCF than DCOM.
I think momentum has shifted to SOAP and other web service technology because it is:
I've never used DCOM myself, so I can't really comment on its general quality or fitness.
Well, DCOM is a distributed version of COM and COM is very complex by itself and it's very easy to do something wrong unintentionally (see this recent question and the answer to it for examples). With DCOM you just have even more ways to hurt yourself.
Other than that it works and is for example a good way for hosting in-proc COM components in a separated process.
If your trying to build a client server application and want the communication to go across network boundaries (for example the internet) then DCOM can be problematic due to firewalls.
I had worked on a very success server application which was distributed using DCOM, we let the system handle most of the complexity by creating COM+ Server Applications and exporting Application Proxies. In this case it worked very well as long as all of our versions were synched up.