So, what is a smart client exactly?
A Windows smart client is essentially a desktop application accessed over the Internet. Technically, it is an
Internet-connected component or piece of software that allows the user's local application to
interact with server-based applications through the use of Web Services. Microsoft defines smart
clients as client applications that provide an adaptive, responsive and rich interactive experience,
leveraging local resources and intelligently connecting to distributed data sources.
Business users now demand that their organizations move many core business applications online to leverage the far-reaching benefits of the Web. Technologies have necessarily emerged to support this need and provide as rich a user experience via the Web as users have come to expect in their desktop applications.
Microsoft’s response to this need was the ‘smart client.' So, what is a smart client exactly? This technology is still similar to the desktop application model, requiring users to download the application from the Web but providing a rich user experience. They provide some of the benefits of a Web application (such as leveraging access to the Internet and offering remote access to data) while still providing an advanced desktop look-and-feel.
A Windows smart client is essentially a desktop application accessed over the Internet. Technically, it’s an Internet-connected component or piece of software that allows the user's local application to interact with server-based applications through the use of Web Services. Microsoft defines smart clients as “client applications that provide an adaptive, responsive and rich interactive experience, leveraging local resources and intelligently connecting to distributed data sources.”
Smart clients do not refer to a specific development technology or to a specific architecture. A smart client is more of a style of application that combines features of both Windows applications and Web applications, delivering a rich, user experience that is Web-enabled. Windows applications are able to provide a rich user experience, they are not difficult to develop (with a robust development environment like Visual Studio), and they use local resources, which allows Windows applications to be responsive and interact with connected devices.
The main characteristics of a smart client application include:
- Rich User Experience - When referring to a rich user experience, this refers not just to look-and-feel, but to user interactivity and the dynamic nature of the application with immediate responsiveness.
- Local Resource Usage – Refers to local hardware and/or software resources. Because the smart client executes locally, the application can respond quickly to the user. A smart client may take advantage of the local CPU, local memory, local cache, or any devices connected to the client.
- Connected Application - Exchanges data on the Internet or an enterprise network. Smart client applications are not standalone and form part of a larger distributed solution. This could mean that the application interacts with a number of Web Services that provide access to data or another business application. Smart clients also connect to specific services that maintain the application and provide deployment and update services.
- Windows Client Download, Installation, and Update – Web-enabled smart client applications are deployed over the Web with HTTP, but the smart client application (this is commonly referred to as the ‘executable’ or .exe application file) must be downloaded and installed on Windows client machines and run in Internet Explorer (IE). Smart clients must check for updates, which also have to be downloaded and installed on a regular basis or as needed.
Smart clients are certainly not zero-footprint, nor are they typically OS and browser independent. Therefore, smart clients built for the Web are actually just ‘Web-enabled’ and not fully Web-based. Technologies like AJAX, which is based on existing Web technologies, are quickly growing in popularity and are fast becoming mainstream to provide a rich user interface, while being purely Web-based. Google, for example, has adopted this technology for their popular Web-based Gmail, Google Maps, and Google Spreadsheets applications among others.