The Future of WCF, Part 1
It's been two years since we shipped the first release of WCF (codenamed Indigo). It was actually even a little before that that I started thinking about what features we should include in the upcoming .NET 4.0 release.
The first time that I wrote down a list of features that I was targeting for improvement was the summer before, approximately two and a half years ago. There is always a period of time towards the end of a release where every addition is scrutinized too closely to add a new piece of work but the old pieces of work no longer require the continuous attention of everyone on the team. This is typically one of those creative periods where people are doing things such as thinking about what seems at the time as the distant future. I'll have to go check how closely that initial list compares to what we are planning to do today. I suspect that the two will read very differently.
Due to the way that the Orcas release was conceived and assembled, many of the ideas we had could only be done in the next major release. This led to us essentially planning for both releases at once. Orcas became a targeted release because there were significant restrictions on both our time until delivery and about what we could to the existing code from an engineering standpoint.
One of the things that I took notice of early on is that there were some particular biases in the types of web services that WCF was built to support. I thought that there were other interesting markets for web service developers that WCF wasn't doing a good job of catering to at the time.
WCF started with a clear bias towards SOAP, WS-* protocols, and other heavyweight standards that were being popularized at the time but had not been ubiquitously adopted. One effort underway was to continue evangelizing and spreading these standards.
I didn't believe though that you could force the world to use a single approach for building web services. You also couldn't convince everyone to completely discard and replace all of the entrenched connected systems and applications that they had been developing and investing in for the past 25 years. Realistically, you can't convince anyone, except for a rounding error's worth of people, to do that without some tangible value in return. Instead, you have to look for markets where this weakness doesn't apply or where it can be turned into a strength.
There were two markets in particular that I thought were interesting for web service developers to expand into when using WCF, which I'll talk about next time.