Has anybody replaced COM+ with WCF?
Was there an improvement in the performance?
What were other advantages?
Has anybody replaced COM+ with WCF?
Was there an improvement in the performance?
What were other advantages?
I have used both COM+ (plus COM and DCOM) and WCF for years each. This included building large airline reservation systems using both technologies.
WCF and COM+ a really two different beasts. COM+ was really built for the COM heyday. As such, it is really easy to use in any environment that plays really well with COM (like VB6). In those environments you cannot beat it for development ease and performance. COM+ also gives you lots of "freebies" such as transactions. We used it for many years and were very happy with it. Performance was also very good.
COM+ can also be used in dotNET, but I never felt it was a first class citizen. I always got the feeling that Microsoft was supporting COM+ in dotNET because they had too. It always felt a little clunky to me.
WCF is a dotNET beast. The big advantage I see to WCF is flexibility. You can pretty much plug in, or build, any communications protocol you could possibly want. Want ease of use, use HTTP. Want objects as tight and performant as possible, use TCP and Binary serialization, etc. It plays well in the dotNET world. WCF has a ton of features available "out of the box" as well, like transactions, queueing, secure channels, load balancing and more. But you have to configure it to use these features with config files that are very complex and cryptic. In COM+ most of these were just checkboxes in component services.
Regarding performance. I always found COM+ to be really fast if you followed all the rules (call SetComplete when calls done, don't maintain state, etc). WCF can also be super fast, but you have to make sure you configure it correctly. WCF lets you configure EVERYTHING. This can be really great, but it also let's you make messes of things really easily. The biggest hit you will get in WCF is probably your object serialization (at least in my experience).
As I said, WCF is super flexible. You can use it through firewalls and across the web or private WANs without too much difficulty. Try doing that with COM+ (good luck, I've done it and it is NOT easy). We used WCF to setup communications between airports over private communications networks all protected by different firewalls owned by different parties.
Really, if you want some of the goodness of WCF without all the pain, take a look at WebAPI (http://www.asp.net/web-api). They started by building it on top of WCF as a way to get WCF up and running easily and quickly. But I don't believe it is tied to WCF any longer. That being said, it does not offer all of the features of WCF and if you need these advanced features you won't be able to use WebAPI.