Talking about WCF Woes

Sendhil has shared his experience in implementing WCF.


WCF Woes

We started using WCF in our project recently.
The vision (read architecture) was good when people (the likes of Don Box) were speaking about WCF.
However after using it and getting my hands dirty, I really doubt if the implementation really lives up the expectation set by the vision.
There has been a quite a few issues with WCF, but the one I ran into yesterday was proof that Microsoft has compromised on people aspects (atleast at the developer level). The vision still seems to be good. People like myself are getting into Microsoft development teams (Core teams, I believe WCF is one of the core elements of the Framework). This is what I saw yesterday.
I wanted to write my own ServiceHost so as to apply the WCF configuration myself. I was rather wild when I learned that configSource attribute is not supported on any of the WCF configuration sections. And if I really had to load the configuration from an external source I had to reinvent the whole WCF configuration approach myself. Source: Well that’s not what I wanted to blog about.
The ServiceHost class contructor (or one of it’s base class’s) call ApplyConfiguration which happens to be a virtual method. Oops, constructors calling virtual methods, I thought that was not encouraged. I decided to google on this and found that I was right. The good folks from Microsoft have written about this here and here. In fact they found it reasonable to include it as a FxCop rule as said here. But only for folks outside of Microsoft may be. They went ahead and violated their own rule. The irony is that it slipped out of the design, design reviews, development, development reviews and testing. ServiceHost happens to be one of the core classes of WCF.
The bottomline is that Microsoft is compromising on the process (the fact that this one slipped thru all the reviews and testing) for getting stuff out early, as well as people. Not so good news.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s