Building Smart Clients using .NET...

A Smart Client is an application that uses local processing, consumes XML Web Services and can be deployed and updated from a centralized server.


By: Diwakar Bedekar Date: June 10, 2004 Download the code.

What is a Smart Client?

A Smart Client is an application that uses local processing, consumes XML Web Services and can be deployed and updated from a centralized server. While the .NET Framework (Windows Forms) and the .NET Compact Framework provide the ability to develop Smart Clients with ease, other technologies can provide smart client applications by utilizing the same architecture.

Smart Client is the concept of architecting your application solution into a smart, flexible and convenient platform that utilizes web services for communication.

Why do we need a Smart Client?

To understand the need lets see the pros and cons of both the existing architectures the Thin Client (Web) and the Thick Client (Desktop).

The Thin Client
The Thin clients or the Web application provided features like –

  1. Easy to Update – Single location update
  2. Easy to deploy – Single location Update
  3. Easy to manage

If it had the above features then it also had the following issues –

  1. Network dependency – are usually Network based
  2. Poor user experience – mainly emit HTML
  3. Complex to develop

The Thick Client
The Thick clients or the Rich client or Desktop Applications or Client/Server application provided features like –

  1. Rich User experience – by means of better user interface
  2. Offline capabilities – Need not be connected on a Network
  3. High Developer Productivity
  4. Responsive & Flexible

The Thick did provide the above feature but on the other hand they also had the following issues –

  1. Tough to Update – Each location needs modifications
  2. Tough to Deploy – Deployment had to be done at multiple location
  3. "DLL Hell"

A Smart Client

The above two architectures provide one feature while they lack the other. But a Smart Client combines the best features found in both the architectures.

Smart Client Features

A smart client would have the following characteristics:

Let us look at one of the very important features of Smart clients – Intelligent Install and Update.

Intelligent Install and Update (Easy Deployment)

Smart client applications manage their deployment and update in a much more intelligent way than traditional rich client applications.

Components

A Smart client application will have two components

  1. A very thin client application to be installed locally
  2. The actual application hosted on a Web Server build using Strong named assemblies

Process involved

When the user opens a Smart client Application –

  1. The User opens the Application.
  2. The application references a assembly hosted on a Web Server.
  3. The .NET Framework checks if the previously downloaded assembly is the latest one.
  4. If not downloads the latest version from the server, loads the assembly locally and launches the application.

Advantages

Any updates to the application, a single change and the changes will be reflected to all the clients when they are launched the next time. This is called a smart client.

Example

The Client Application –

You May download the example code here.