Monday, December 8, 2008

Why smart client still not picking up main stream?

Dec 6th' 08 I presented ADO .Net Sync services at the Tampa code camp. This was my 6th presentation on same topic in as many months and except Orlando Tech Ed I did not see enough developers interested in Sync services. At first it was kind of disappointing to see just 15 developers in the session but then I realized that there were few other sessions running parallel and the one that had biggest crowd was MVC architecture in ASP .net. I guess that's true for winform or smart client development. Out of 10 developers I meet 8-9 are on web development and if I am lucky I might meet one or 2 who might be interested in smart client development and this is surprisingly shocking as the winforms of today have so much to offer than 5 years back. I feel many developers and architects have not yet exploited the potential that winform applications offer.

In Feb 2002 when .net 1.0 was in beta we were going to start a new application at Palm Beach county for the Fire Rescue dept so we decided to jump on .net and that's when my supervisor came across an article "Death of browser", which mentioned about how the browser which was originally designed for browsing static contents have been over abused for application development; and how web services along with stub deployment will change the game back to using win forms. This is where my first love towards winform apps started, though after doing web developments for almost 4 years it took me 3-4 months to accept the winform development, but then it was never looking back. Since then I have been spending most of my time on winform (Smart client) application development.

Smart clients have so much to offer, the biggest hurdle that people had with winform applications is that they were difficult to maintain and upgrade, implementing N tier architecture and security was bit difficult etc, but with click once or stub deployment deploying application is as good as opening a web page and the application maintains it self by auto-upgrading. And the web services or WCF makes designing a robust N tier architecture easier than web application. Today's desktop have been powered with GHz CPUs and Gigs of memory, so why not take advantage of that resource and offer user a really slick application with true GUI and not just a mimic using DHTML. Unless your application is people facing on Internet with unlimited users, I think for most Intranet or even Internet application with known user base; Smart client can be the best solution.

I feel sometime it's about the developers who are use to upgrading them self from asp to .net 1.0 to 3.5 and so on, they have a big resistance to move towards the winforms and one of the argument that I hear most is that with new web controls from third parties like Telerik and dev-express your application can look like winform app, so what's the need to design winform app? And my answer to that is its lot easier to design and maintain winform application, plus the performance can be unmatched. Also with technologies like sync services you can design applications that are available to user even when the network or main database is down.