Clemens Vasters and Ingo are carrying on an interesting conversations on .NET's EnterpriseServices and Remoting. I agree with a lot of what they say.

However, I also have my pet peeves about COM+/EnterpriseServices. Now, don't get me wrong, I really like what services ES provides, and .NET makes it super-easy to use it (compared to doing it all from raw C++), but there are some things that could improve to make it better.

I much prefer to work with library applications whenever possible, as they give you tons of services without many of the disadvantages of server apps: more complex deployment (GAC and all that), no control over the process lifetime, etc. Of course, Library apps also have one big disadvantage: no remote invocation. However, some upcoming COM+ 1.5 features will improve this somewhat.

My other gripe with ES is tied to the particular underlying protocol it uses: DCOM. While DCOM does tons of things and works very well in some scenarios, it doesn't work as well in others. The first problem is its dynamic allocation of ports for applications (which is somewhat improved in Win2K SP3), and the other, of course, the fact that it isn't Load-Balancing friendly. At least, from my [limited] understanding, getting load balancing on these scenarios requires Application Center Server, and adding another third-party product to an already complex application doesn't excite me too much. Not to mention that the way AppCenter does Component Load Balancing (CLB) sounds pretty much like a hack to me. There's also the fact that, afaics, it doesn't exactly play very nicely with .NET (deploying complete applications to the GAC is not my idea of fun). If anyone happens to know more about this than I do (Clemens?), I'd love to be proved wrong and understand this in more detail :)

So, while I think EnterpriseServices already provide a ton of value, I think there's room for improvement, so at least I, personally, would like to see some sort of support for taking advantage of the ES services while breaking out some of the limitations of DCOM... I think that SWC is a step in the right direction, but it's certainly not enough.


Tomas Restrepo

Software developer located in Colombia.