Blogger :
Geekswithblogs.net
All posts :
All posts by Geekswithblogs.net
Category :
WSCF/WCF
Blogged date : 2008 Jun 04
Today I attended an amazing session presented by Juval Lowy . I have to say in the last 5-8 years it was the most interesting and enjoyable session I have been to 4 Microsoft TechEd's, 3 SAP TechEd's, 2 Microsoft Mix's and 2 VS Live conferences. I enjoyed the historical walk down memory lane of software development. Having been in the industry for 20+ years it was interesting to see the patterns that Juval drew out.
A number of interesting thoughts were brought out during the day long conversation.
- Object are inherently non reusable. Its the interface that is reusable. Its about time in my office it seems I am the only one that has ever sung this song.
- Refactoring - Its Evil Don't Do it EVER!!!!!
- Plumbing code is even more EVIL. AHMEN but somebody has to write it... it does not just happen. I agree pick a vendor/framework and invest in it. If you don't like the way it works and you don't speak up don't complain either.
Juval spoke at length about the benefits and direction that he sees WCF headed towards in the future. He is convinced that WCF is finally the answer to universal reuse. While I tend to lean in the direction of supporting this thought I don't think that WCF is at that matured state that we should jump on the bandwagon. Maybe consider architecturally adopting the core principals of WCF but all classes should be WCF services. I am not ready to book the cruise quite yet. I am not convinced the Juval is either. While he is a staunch supported of WCF he is not short sighted or blind to the fallacies of the current implementation of WCF either.
Much like the references to WIN32, COM, and COM+ legacy of DLL hell and version hell the current incarnation of WCF has solved all of these problem by introducing a true interface based programming model. Additionally, all the bells and whistles that you get out of the box "For Free" -- well almost are an attractive draw. he pointed out that now we have the language we just do not have the platform to run it on. While I agree, there is little doubt that Microsoft will have to provide an MFC/ATL like set of helpers to bring everyone to the table. I also agree with Juval on another valuable point that he brought out more subtly and may have been missed by some. Each evolutionary step we have taken in Software development over the last 30 years has built on and in many cases solved the faults of the previous language construct. The new model introduce its own set of defects. As I look at WCF today it seems obvious to me that the faults WCF brings fall within two main areas.
- WCF out of the box if you need concurrence / reliability/ FIFO processing in a web farm it falls flat on its face. No doubt Microsoft is working to resolve that right now.
- The greater flaw I see in the WCF implementation in 2008 is the massive volume of configuration that needs to be maintained for all of the aspects that support the services. It would be at best daunting to maintain this in a "all classes should be services world" (I support the end game here by the way), but just as we should concentrate on the features because no one cares about the plumbing and Refactoring is evil because there is no Value Add only Value Minus. All this configuration on a corporate web farm has simply replaced DLL hell with Configuration hell for operations groups that have to maintain and synchronize it not to mention all the copies you need to keep for Dev Test QA and Prod. Lets hope Microsoft addresses this sooner than later.
See you all in the new world soon. Even with its faults the benefits in productivity will drive adoption and adoption will drive improvement and change.
