A Smart Client is an application that uses local resources, utilizes XML Web Services and can be deployed and updated from a centralized server. It can work both in the connected and disconnected modes.
Why do we need a Smart Client?
To understand this we will need to first understand Thin and Thick clients as below:
The Thin clients or the Web application provided features like :-
- Easy to Update – Single location update
- Easy to deploy – Single location Update
- Easy to manage
Issues with Thin clients :-
- Network dependency – are usually Network based
- Poor user experience – mainly emit HTML
- Complex to develop.
The Thick clients or the Rich client or Desktop Applications or Client/Server application provided features like :-
- Rich User experience – by means of better user interface
- Offline capabilities – Need not be connected on a Network
- High Developer Productivity
- Responsive & Flexible
Issues with Thick clients :-
- Tough to Update – Each location needs modifications
- Tough to Deploy – Deployment had to be done at multiple location
- “DLL Hell”
Local Resource Utilization :-
- A smart client may take advantage of the local CPU, local memory or disk, or any local devices connected to the client
- The application interacts with a number of Web services that provide access to data or an application
Offline Capable :-
- Because they are running on the local machine, one of the key benefits that smart client applications offer is that they can be made to work even when the user is not connected.
Intelligent Install and Update :-
- Applications can be updated while running and can be deployed on demand by clicking on a URL.
Disadvantages of Smart Client:
- The MSIL EXE gets downloaded at client side. So it takes more time to load at the first time
- Since MSIL EXE gets downloaded at client there is risk of client “de-compiling” your code
- There is no central control on the application once it gets deployed to the users.
Types of Smart Client Applications:
Smart Client Windows applications :-
- These kinds of applications typically use Windows Forms to provide a familiar Windows-style user interface
Smart Client Office applications :-
- With an Office smart client solution, one can integrate data sources, accessed through Web services, with the features of Word 2003, Excel 2003, InfoPath 2003, or other Office applications.
Smart Client Mobile applications :-
- Mobile smart clients are applications that run on smart devices — Pocket PCs, Smart phones, etc. These applications are developed using the .NET Compact Framework, which is a subset of the full .NET Framework.
Smart Client Software Factory:
Application Blocks :-
- Composite UI Application Block
- The Connection Monitor Application Block
- The Disconnected Service Agent Application Block
- The Endpoint Catalog Application Block