Skip to Main Content
You are here:    Home> Resources > Technology > Developing 'Smart Client'

 

Technology Articles

Developing 'Smart Client' user interfaces in Microsoft .Net

Martin Bell


Local resources and user experience

Smart client applications come in many shapes and sizes with varying degrees of functionality. One trait that all smart client applications share is an ability to exploit local resources such as hardware for storage, processing or data capture. Smart client solutions offer hi-fidelity end-user experiences by taking full advantage of all that the Microsoft Windows platform has to offer. Examples of well known smart client applications are Word, Excel, MS Money. Unlike "browser-based" applications such as Amazon.Com or eBay.com, smart client applications live on your PC, laptop, Tablet PC, or smart device.
Smart client applications can be used whether you are online or offline. When they are online, smart client applications can provide an even richer experience. However, one of the key aspects of a smart client is they work exceptionally well, connected or not.

Connected

Smart client applications are able to readily connect to and exchange data with systems across the enterprise or the internet. Web services allow smart client solutions to utilize industry standard protocols such as XML, HTTP and SOAP to exchange information with any type of remote system. Visual Studio, the .NET Framework and the .NET Compact Framework make consuming Web services easier than ever before. Technologies such as Microsoft® SQL Server, Microsoft® Message Queuing (MSMQ) and BizTalk Server also provide readily leveraged ways to synchronize and exchange information between systems.

Offline capable

Smart client applications work whether connected to the Internet or not. Microsoft Money and Microsoft Outlook are two great examples. Smart clients can take advantage of local caching and processing to enable operation during periods of no network connectivity or intermittent network connectivity. This functionality is extremely valuable in this new era of mobile information workers especially given the cost, latency and speed of mobile connections.
Offline capabilities are not only of use in mobile scenarios however, desktop solutions can take advantage of offline architecture to update backend systems on background threads, thus keeping the user interface responsive and improving the overall end-user experience. This architecture can also provide cost and performance benefits since the user interface needs not be shuttled to the smart client from a server.
Since smart clients can exchange just the data needed with other systems in the background, reductions in the volume of data exchanged with other systems are realized. This in turn increases the responsiveness of the user interface (UI) since the UI is not rendered by a remote system.

10 reasons for developers to start building Smart Client

  • Improved Reliability in Heterogeneous Network Environments
  • Smart Client application can store data locally and use the network in a smart way to provide functionality and reliable operation even when network is unavailable. This capability is especially important when the user is mobile and needs to be productive.

  • Increased Performance and Scalability
  • Smart Client applications use the capabilities of the local operating system and power of the local CPU for calculations. Having a dedicated CPU is important for achieving good performance. Furthermore, the capability to run local code off loads many task that are done by servers in a typical web application delivery. Increased Performance and Scalability.

  • Develop Applications Faster
  • Developers of all backgrounds are finding that Smart Client applications are easier to write. The development does not need to consider things like session management and server round trips. The intuitiveness of the programming model and the richness of the code already provided in the class libraries enable developers to reap huge productivity gains.

  • Access to Local Machine Functionality (such as DirectX)
  • In many cases applications need to use hardware functionality that exists a machine that can be accessed only through a Smart Client application. This functionality can be an I/O device or a graphic accelerator (as in the case of games)./p>

  • Integration with Existing Desktop Applications and Systems
  • The simple interop mechanism provided with the infrastructure to build Smart Clients with the .NET Framework enables developers to program against them in a native way. Furthermore, applications built using the .NET Framework can connect with existing systems and packaged applications--regardless of their underlying platform.

  • Ease of Deployment and Security
  • With No-Touch Deployment, Windows-based Smart Client applications can be deployed and updated on target PCs simply by copying the necessary components to a Web server that can be accessed by the end users. Furthermore, using code access security can result in better control of the Smart Client code executed on the client machine resulting with the proper experience to be delivered to the appropriate users.

  • Mobility Support and Data Synchronization Capabilities
  • Smart client application can be delivered on various mobile platforms with various form factors (Smartphones, PDAs, Tablet PCs, Laptops) sharing a unified programming model. Furthermore, since network is not a reliable resource for mobile applications, developers can add data synchronization features into the application to ensure smooth operation.

  • Native XML and Web Service Support
  • The .NET Framework was designed from the ground up to support XML and Web services. This allows for easy manipulation of data and easy integration of the application with heterogeneous systems.

  • Better User Experience and User Interface
  • Smart client applications can use the functionality of the underlying operating system to provide a rich, responsive, and intuitive user experience that is not depended on server roundtrips or browser rendering capabilities.

  • Flexible Data Access and Local Caching of Data
  • Smart client applications can be smart as to the way data is handled within the application. According to different considerations, developers can choose to store and use local data or connect to remote databases in order to deliver applications that work whenever it is needed and not only when network connection is available.

Summary

Smart client applications leverage the benefits of the internet and Microsoft Windows technology to provide a web enabled system coupled with a rich user interface.

 

 

Related Pages: Business, Technology

 

 

Related Keywords: Smart Client, Microsoft.net, user experience, offline capable