MSDN TV has posted a video about .NET Smart Client Applications and “the buzz around the .NET Smart Client Application Revolution.”
Well, call me a revolutionary then since having architected such a large-scale solution during the .NET 1.0 RC2 I was doing ths several years ago. While I no longer work for the company I can attest that smart clients are a step in the right direction in the age of the Internet where so many people and businesses have fast connections.
Since clients browsers download and execute everything you see in a browser from web pages to ActiveX controls, assemblies are downloaded and executed in a new AppDomain taking some load off the server. This also lets you design better user interfaces with fewer problems than commonly associated with the mostly stateless model of ASP.NET.
This lets you update assemblies that – if versioned correctly – are downloaded and cached in the temporary assembly cache, isolated them from other assemblies and versions. This presents a good opportunity to keep the application up-to-date, cutting down on deployment costs and increasing the response time for bug fixes and feature enhancements.
As the video describes, however, the major drawback is that the .NET Framework is required to run applications that target the .NET Framework (just as Java applications required a JVM). This can be a 20+ MB download. In the near future, however, this shouldn’t be a problem since newer platforms like Windows Server 2003 and “Longhorn” are shipping with the Framework.
Another problem with touchless deployment is that a connection is required. In those cases, and offline smart client is beneficial. The .NET Framework 2.0 introduces ClickOnce, which combines touchless deployment with a typical installation. There’s also the Smart Client Offline Application Block that you can use with the .NET Framework 1.0 and 1.1.
So, take a look at the video MSDN TV has put together and read some of the articles. If you’re already distributing connected client applications, you could benefit from smart clients. If you’re not already building connected applications, this may open up wonderful new business opportunities.