2

Has anybody replaced COM+ with WCF?

Was there an improvement in the performance?

What were other advantages?

2
  • 2
    What did you found about that online? What did you read? And then, come with a more precise question illustrating your findings. Commented Apr 24, 2014 at 13:10
  • Like @Askolein said, ask precise question and also share your analysis and findings. Commented Apr 24, 2014 at 13:20

1 Answer 1

6

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.

Sign up to request clarification or add additional context in comments.

4 Comments

fun fact I myself recently learned, WCF can do transactions too.
Worth pointing out that there's a lot of "WCF goodness" that simply isn't in WebAPI, which is exclusively for building (usually REST-like) services on HTTP. If you're considering trying to shoehorn e.g. transactions into Web API, you may as well just start with WCF instead.
I didn't mean to imply WCF cannot do transactions. WCF has tons of functionality "out of the box" as well. I will modify my answer to clarify.
Agreed regarding WebAPI. I've modified my response.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.