Monday, December 10, 2007

Smart Clients.

What are smart clients?
Smart clients are the applications provide the benefits of a rich client model with thin client manageability, they also provide much more flexibility than the traditional rich client applications.

Smart clients are those that :-
1. Utilizes Local Resources

A smart client application always has code artifacts on the client that enable local resources to be utilized. What do we mean by local resources? We mean everything from hardware to software resources. A smart client may take advantage of the local CPU or GPU, local memory or disk, or any local devices connected to the client, such as a telephone, bar-code/RFID reader, and so on. But it may also take advantage of local software, such as Microsoft Office applications, or any installed line-of-business (LOB) applications that interact with it.

2. Stay connected
Smart client applications are never standalone and always 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 an LOB application. Very often, the application has access to specific services that help maintain the application and provide deployment and update services.

3. Are 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. For applications running in occasional or intermittent connectivity situations, such as those used by traveling workers or even those running on laptops, tablets, PDA's, and so on, where connectivity cannot be guaranteed at all times, being able to work while disconnected is essential. Even when the client is connected, the smart client application can improve performance and usability by caching data and managing the connection in an intelligent way.

4. Intelligently Install and Update
Smart client applications manage their deployment and update in a much more intelligent way than traditional rich client applications. The .NET framework enables application artifacts to be deployed using a variety of techniques, including simple file copy or download over HTTP. Applications can be updated while running and can be deployed on demand by clicking on a URL. The Microsoft® .NET Framework provides a powerful security mechanism that guarantees the integrity of the application and its related assemblies. Assemblies can be given limited permissions in order to restrict their functionality in semi-trusted scenarios.

5. Client Device Flexibility
The .NET Framework together with the .NET Compact Framework provides a common platform upon which smart client applications can be built. Often, there will be multiple versions of the smart client application, each targeting a specific device type and taking advantage of the devices unique features and providing functionality appropriate to its usage.

Why is a smart client required?
The complexity of applications is increasing, and with it the expectations of the user. The thin client model is no longer able to provide the required levels of functionality, performance, flexibility, and integration. Users are now demanding fast and responsive applications to perform their daily work in a flexible and efficient manner.
Laptops have proven to be indispensable for a number of information worker uses. Industry analysts are predicting that the majority of information workers will be operating on non-desktop machines within the next few years. The advent of Windows CE, XP Embedded and Pocket PC PDAs and Phones has brought the possibility of an unlimited number of form factors, including ruggedized models, to meet the needs of a broader range mobile workers.
While just reusing older applications on these new devices may be expedient, it often does not foster timesaving or cost-saving improvements, nor does it allow for business innovation. By utilizing the greatly increased computing power contained within these new devices, Smart clients can assist the mobile worker to get more work done in less time.

Feature of smart client
· Rich Components
· Dashboard Functionality
· Rapid Application Development
· Smart Application Delivery and Management
· Standards Based Application Development Environment
· Online / Offline Applications Access
· XML / Web Services Consumption
· Enterprise Security
· Extensibility

Reference:-http://blogs.msdn.com/dphill/articles/66300.aspx