Microsoft exec on .Net 3.0 and WCF

30.01.2007

WCF is Microsoft's implementation of a set of industry standards defining service interactions. WCF unifies the previous generations of Microsoft's technologies, offering the interoperability of ASP.NET web services, the extensibility of remoting and the productivity and power of Enterprise Services. There is just a ton of off-the-shelf plumbing to use, something nothing else offers over standards.

What makes WCF a good platform for developing service-oriented applications?

It is designed from the ground up for that. You cannot tack it on things like raw .NET or Windows SOA - they are just unaware of it. WCF enforces many of the SOA tenets, and enables the rest. It is deliberately different from classic .NET - there is no type sharing, it is all based on message exchange, and it supports most of the industry WS standards that facilitates services interoperability. Not only that, there is a ton of built-in plumbing that do all the hard work for you.

Can you detail some features of the built-in plumbing that takes care of the hard work for developers? And can you specify the hard work that it eliminates?

In a decent-size application, the bulk of the effort, the development, and the debugging time is spent on addressing plumbing issues such as hosting, instance management, asynchronous calls, synchronization, reliability, transaction management, disconnected queued calls and security, as opposed to focusing on business logic and features. To make things even worse, since the end-customer (or the development manager) rarely cares about plumbing (as opposed to features), the developers are not given adequate time required to develop robust plumbing.