Smart client (n) Definition: Smart clients are easily deployed and managed client applications that provide an adaptive, responsive and rich interactive experience by leveraging local resources and intelligently connecting to distributed data sources.
A smart client application combines the following ingredients to provide a responsive, rich, and compelling experience to its end users.
Smart Client Ingredients
Local resources and user experience
Smart client applications come in many shapes and sizes with varying degrees of functionality. One trait that all smart client applications share is an ability to exploit local resources such as hardware for storage, processing or data capture such as compact flash memory, CPUs and scanners for example. Smart client solutions offer hi-fidelity end-user experiences by taking full advantage of all that the Microsoft® Windows® platform has to offer. Examples of well known smart client applications are Word, Excel, MS Money, and even PC games such as Half-Life 2. Unlike "browser-based" applications such as Amazon.Com or eBay.com, smart client applications live on your PC, laptop, Tablet PC, or smart device.
Smart client applications can be used whether you are online or offline. When they are online, smart client applications can provide an even richer experience. However, one of the key aspects of a smart client is they work exceptionally well, connected or not.
Smart client applications are able to readily connect to and exchange data with systems across the enterprise or the internet. Web services allow smart client solutions to utilize industry standard protocols such as XML, HTTP and SOAP to exchange information with any type of remote system. Visual Studio, the .NET Framework and the .NET Compact Framework make consuming Web services easier than ever before. Technologies such as Microsoft® SQL Server, Microsoft® Message Queuing (MSMQ) and BizTalk Server also provide readily leveraged ways to synchronize and exchange information between systems.
Smart client applications work whether connected to the Internet or not. Microsoft® Money and Microsoft® Outlook are two great examples. Smart clients can take advantage of local caching and processing to enable operation during periods of no network connectivity or intermittent network connectivity. This functionality is extremely valuable in this new era of mobile information workers especially given the cost, latency and speed of mobile connections.
Offline capabilities are not only of use in mobile scenarios however, desktop solutions can take advantage of offline architecture to update backend systems on background threads, thus keeping the user interface responsive and improving the overall end-user experience. This architecture can also provide cost and performance benefits since the user interface needs not be shuttled to the smart client from a server.
Since smart clients can exchange just the data needed with other systems in the background, reductions in the volume of data exchanged with other systems are realized (even on hard-wired client systems this bandwidth reduction can realize huge benefits). This in turn increases the responsiveness of the user interface (UI) since the UI is not rendered by a remote system.
Intelligent deployment and update
In the past traditional client applications have been difficult to deploy and update. It was not uncommon to install one application only to have it break another. Issues such as "DLL Hell" made installing and maintaining client applications difficult and frustrating.
The beginning of the end for "DLL Hell" came with the launch of the .NET Framework and the benefits it brought such as XCOPY deployment and side by side versioning; see the .NET Framework Deployment Features topic in the .NET Framework Developer's Guide for more. The Updater Application Block for .NET from the patterns and practices team provides prescriptive guidance to those that wish to create self-updating .NET Framework-based applications that are to be deployed across multiple desktops. The release of Visual Studio 2005 and the .NET Framework 2.0 will beckon a new era of simplified smart client deployment and updating with the release of a new deploy and update technology known as ClickOnce.