Smart client is a term describing a computer application environment which:
- delivers applications over a web Hypertext Transfer Protocol (HTTP) connection
- does not require installation (or provide automated installation and updates)
- automatically updates without user action
- has the look and feel of desktop applications
A smart client application can be created in several very different technologies. The original use of the term in the context of the web was Isomorphic Software's SmartClient product. They have owned the SmartClient.com domain since 2001. It uses an Ajax-based, cross-browser approach. In 2004, Microsoft began using the term to refer to .NET applications delivered via its ClickOnce methodology from Internet Explorer browsers to Windows XP. The terms "rich Internet application" and "rich web application" are essentially synonymous with "smart client", and are used to refer to several other technological approaches including Adobe Flash, Java applets and Webstart applications.
The smart client approach came about because when businesses tried to develop web applications to replace their old desktop applications, user productivity decreased. This was because web-based user interfaces based on server-side HTML generation are typically not as responsive, have fewer hot keys, require more use of the mouse and are unreliable when handling large files such as computer aided design drawings.
Smart client applications bridge the gap between web applications and desktop applications. They provide the benefits of a web application (such as using the Internet for remote access to data) while still providing the snappy look and feel inherent to desktop applications.
Platforms for building smart client applications:
- Flex from Adobe, which uses Flash or Adobe AIR as a runtime platform.
- JavaFX from Oracle Corporation, or Google Web Toolkit, both for Java; the former can also be used in Scala
- Silverlight from Microsoft (although this is only supported on Windows and Mac; the Linux port, Moonlight, was abandoned due to lack of popularity)