Tips n Tracks

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color

Reference

Sample image

Microsoft .NET Framework Get Details.

Sample image

Microsoft .NET Framework Get Details.

Reference

Sample image Microsoft .NET Framework Get Details.
Sample image

Microsoft .NET Framework Get Details.


Smart Client – figure out the design challenges and the solutions.


Smart Client – figure out the design challenges and the solutions.

Smart clients are easily deployed and managed client applications that provide an adaptive, responsive and rich interactive experience by leveraging local resources and intelligently connecting to distributed data sources

To fully understand how smart clients combine the benefits of rich clients and thin clients, it is useful to examine the history and underlying principles behind the rich and thin client application models, and review some of the advantages and disadvantages associated with each.

Rich Client Applications

These clients were designed to take advantage of the local hardware resources and the features of the client operating system platform. Despite the impressive functionality of many of these applications, they have limitations. Many of these applications are stand-alone and operate on the client computer, with little or no awareness of the environment in which they operate. This environment includes the other computers and any services on the network, as well as any other applications on the user’s computer. There are technologies to help increase the connectivity of rich client applications. For example, two-tier applications allow multiple users to access common data residing on the network, and DCOM allows applications to become more distributed.

While rich clients typically provide a high-quality, responsive user experience and have good developer and platform support, they are very difficult to deploy and maintain. As the complexity of the applications and the client platform increases, so do the difficulties associated with deploying the application to the client computer in a reliable and secure way. One application can easily break another application if an incompatible shared component or library is deployed, a phenomenon known as application fragility.

Thin Client Applications

The Internet provides an alternative to the traditional rich client model that solves many of the problems associated with application deployment and maintenance. Thin client, browser-based applications are deployed and updated on a central Web server; therefore, they remove the need to explicitly deploy and manage any part of the application to the client computer. Thin client applications have some disadvantages. The browser must have a network connection at all times. This means that mobile users have no access to applications if they are disconnected, so they must re-enter data when they return to the office. Also, common application features such as drag-and-drop, undo-redo, and context-sensitive help may be unavailable, which can reduce the usability of the application.

Because the vast majority of the application logic and state lives on the server, thin clients make frequent requests back to the server for data and processing. The browser must wait for a response before the user can continue to use the application; therefore, the application will typically be much less responsive than an equivalent rich client application. This problem is exacerbated in low bandwidth or high latency conditions (The time that elapses between an action taken and the response to it), and the resulting performance problems can lead to a significant reduction in application usability and user efficiency.

Smart Client Applications

Smart client applications can be designed to combine the benefits of a rich client application with the deployment and manageability strengths of a thin client application, although the precise nature of the balance between the two approaches depends on the exact scenario.

Smart client applications often have very diverse requirements, and so vary greatly in design and implementation. However, all smart clients share some or all of the following characteristics:

  • Make use of local resources
  • Make use of network resources
  • Support occasionally connected users
  • Provide intelligent installation and update
  • Provide client device flexibility
  • Responsiveness

The smart client application architecture, having evolved from the desktop application architecture and with access to local resources, can offer a rich and complex user interface unattainable by Web applications. Users are looking for more sophisticated user interfaces, with support from user experience elements such as interactive graphics, context menus, integrated and context sensitive help, drag and drop support, docking windows, customizable toolbars and layout, ink support, voice-driven interfaces, etc.

A well-designed smart client application takes maximum advantage of the fact that code and data are deployed on the client and executed and accessed locally. It provides an application with a rich and responsive user interface and powerful client-side processing capabilities. For example, it might enable the user to perform complex data manipulation, visualization, searching, or sorting operations. Smart clients can take advantage of client-side hardware resources (such as telephones or barcode readers) and other software and applications. This makes them well suited to solve problems that a thin client application cannot solve well, such as point-of-sale applications. Other client applications can be integrated or coordinated by the smart client application to provide a coherent and efficient overall solution.

Using Local Resources

A well-designed smart client application takes maximum advantage of the fact that code and data are deployed on the client and executed and accessed locally. It provides an application with a rich and responsive user interface and powerful client-side processing capabilities. For example, it might enable the user to perform complex data manipulation, visualization, searching, or sorting operations.

Smart clients can take advantage of client-side hardware, software and available applications. This makes them well suited to solve problems that a thin client application cannot solve well. Maximizing the use of and integrating local resources into your smart client application enables your application to make better and more efficient use of the hardware that is already available to you. Very often, processing power, memory, and advanced graphical capabilities go unused. Using the resources on the client computer can also reduce server-side hardware requirements.

Using Network Resources

Web Services are a key element of applications that need to have access to data that crosses system and network boundaries. When Web Services are integrated into a Smart Client application they allow the application to easily access a variety of different types of information as appropriate to the application (financial, weather, status updates, etc.) when online but then graceful revert to an offline mode when no longer connected to the network. The ability to leverage industry standards such as XML, SOAP, and HTTP to access application data while online and the ability to store this information for offline use is one of the hallmarks of smart client application functionality. Many current applications such as Microsoft Money are excellent examples of this approach.

Smart clients can consume and use different services and data over the network. They are an effective way to retrieve data from many different sources and can be designed to analyze or aggregate the data, allowing the user to make more efficient and better informed decisions. For example, a smart client could use a mapping service to provide details on location and driving directions.

Providing Intelligent Installation and Update

Smart client applications can be designed to manage their deployment and update in a much more intelligent and flexible way than traditional rich client applications. They can avoid these common problems, which can help to reduce your application management costs.

There are a number of different ways to deploy smart clients. These include simply copying files onto a local computer, downloading code automatically from a central server using no-touch deployment, or deploying Windows Installer packages using an enterprise push technology such as Microsoft Systems Management Server (SMS). The method you choose will depend on your specific situation.

Smart client applications can update themselves automatically, either when they are run or in the background. This capability allows them to be updated on a role-by-role basis; updated in a staged manner, allowing applications to be rolled out to pilot groups or a limited set of users; or updated according to an established schedule.

Providing Client Device Flexibility

Smart client applications are not restricted to desktop or laptop computers. As connectivity and the power of small-scale devices increases, the need for useful client applications that provide access to essential data and services on multiple devices also increases. Together with the .NET Compact Framework, the .NET Framework provides a common platform on which smart client applications can be built.

Responsiveness

Smart clients can be designed to provide functionality to users who are occasionally connected to the network, allowing the user to continue to work efficiently when explicitly offline, in low bandwidth or high latency network conditions, or when connectivity is intermittent. For mobile applications, smart clients can also optimize network bandwidth, for example by batching requests to the server to make better use of expensive connectivity.

Because smart client applications are installed locally on the machine they dot not rely on remote resources for application logic processing and can generally provide a highly responsive user interface. Still, accessing networked resources is an important element of the smart client application architecture, and network delays or outages can disrupt application responsiveness and interrupt the application flow. By handling these network delays and connectivity issues gracefully; a smart client application can maintain responsiveness. Application responsiveness can be increased as well by caching application data locally, especially data such as slowly changing lookup data, to minimize the number of network round trips required. Smart client applications can improve performance and usability by caching data and managing the connection in an intelligent way.

Bibliography

Smart Client Architecture and Design Guide:
This guide gives you prescriptive guidance on how to overcome architectural challenges and design issues when building smart client solutions. It also provides guidance on how to combine the benefits of traditional rich client applications with the manageability of thin client applications.
http://www.microsoft.com/downloads/details.aspx?familyid=8EC600BD-A2E5-44AC-9A8F-68D06361853E&displaylang=en

Smart Client Architecture:
http://aspalliance.com/1169_Smart_Client_Architecture.3

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

No comments yet.

Leave a comment

(required)

(required)

*
To prove that you're not a bot, enter this code
Anti-Spam Image