Most Read Latest News Blog Resources

The Smart Client Top Five




March 15, 2007 — 
Are you currently at the design-phase crossroads and deciding between smart client or thin client Web architecture? If so, my advice to you is to go with smart client, hands down.

Most likely you’ve heard the term smart client and wondered what exactly it means. Some people think it’s yet another Microsoft technology to learn. Still others mistakenly think that smart client is just another name for Windows Forms. Although it encompasses development with Windows Forms, smart client is a whole lot more. It’s got a lot of advantages, but the best thing smart client architecture offers is a superior user experience.

To give smart client architecture some context, let’s look at the recent history and evolution of Windows application development. With the advent and evolution of Windows development languages, there were many software applications developed that were then referred to as “fat clients” but are now more fondly referred to as “rich clients.”

Initially these applications were constructed with the typical client/server architecture where all user interface components reside on the client and processing takes place on the server. Needless to say, a single database and the inability to distribute application logic created an inherent lack of scalability in this architecture. Subsequent technologies such as DCOM and application servers such as COM+ provided scalability by enabling the distribution of code to multiple machines. These applications became known as distributed or n-tier applications.

The primary advantages of rich client applications were robust development and debugging, improved user interface and the ability to use client-side resources. The disadvantage of rich client applications is that they’re difficult to deploy and maintain. To deploy these applications automatically, developers had to write additional utilities to handle downloading files and component registration. Because these applications relied on registered DLLs, maintenance was also a challenge.

Then along came the Web browser, and it was quickly hailed as the great equalizer that would enable software to run on all machines. The primary advantage of the browser-based application is that it’s relatively easy to install and update. Thin clients leave the client computer unaffected, and anyone with a browser can access it.

Initially there were few tools available to develop Web applications other than HTML. Technologies such as ASP, style sheets and XML emerged to allow easier development of more robust thin clients. These technologies were improvements, but the user interface of Web-based applications could never compare in functionality and robustness to that of rich clients. These tools also never offered a cohesive and robust development environment, making the development of Web applications more time-consuming.

The .NET Framework and Visual Studio have a group of features that let developers create Windows Forms applications that have all the advantages of n-tier applications but are easier to deploy. This set of technologies is called the smart client application model. This model not only means more user-friendly applications for users, but also a feature-rich development environment with full debugging support.

SMART CLIENT FEATURES
Smart client is a term coined by Microsoft, but doesn’t have to be specific to Microsoft. Smart client isn’t a single technology but refers to a collection of technologies and application features that not surprisingly go hand-in-hand with Microsoft’s development tools (although you can use other development tools to create smart clients). The best way to define smart client is to describe the characteristics of a smart client application. Those characteristics are:

• Uses local resources. Unlike Web applications, smart clients can access client-side hardware. Therefore complex calculations and other actions that require a lot of CPU and memory usage can be performed on the client. Local resources not only include hard drive and memory, but also special hardware like scanners or bar code readers.

• Is network-enabled. Although smart clients have offline capability, they are typically connected applications and designed to consume network resources. Those network resources could be anything from data from a database or file share to Web services.

• Has offline capability. Smart client applications provide the ability for users to continue working when disconnected. This is typically done through data caching and managing connections when the user is online so that the user can continue working normally regardless of whether the application is connected or not.

• Has flexible deployment. Developers now have a number of methods for handling the deployment and updating of smart clients, the most compelling of which is no-touch deployment. With no-touch deployment, applications are deployed by copying files to a central server. Users then access the server through a URL and the updated files are downloaded to the client. Bear in mind that you must handle deploying the .NET Framework to the client unless the client is running Windows Vista (which includes the .NET Framework 3.0).

These are the overall characteristics of smart clients. Some applications may use all or only a few of these features, and the manner in which these features are implemented varies depending on the available platform, the application requirements and the developer’s chosen architecture.

WHY SMART CLIENT?
Here are five reasons to go with smart client:

1. Superior user experience. Smart clients offer a much better user experience, and the development tools make it easier for developers to provide a rich interface. The sheer number and variety of controls in Visual Studio enable you to create intuitive interfaces with objects like tabs, trees and grids. UI features like drag-and-drop and dynamically linked list boxes can easily be implemented without having to refresh a page. UI-dependent interfaces such as those in data entry applications can be designed with keyboard shortcuts and other navigational elements that improve usability.

Not all smart clients have great interfaces, but I can honestly say I’ve never used a Web application whose interface matches that of a smart client application. Thin clients force you to design applications that work around the limitations of the platform. Web applications are suitable for some applications, but for interface-intensive applications, smart clients offer much more functionality.

2. Improved deployment. Applications that update themselves automatically, such as Norton Antivirus and Adobe Acrobat, are becoming commonplace. Web applications have always had a simple deployment model: Just update the Web server and all clients see the updates. Now smart clients not only have streamlined deployment but updating those applications is easier than ever.

There are a number of methods for deploying smart clients: no-touch deployment, ClickOnce, xcopying files, Windows Installer and running the application from a file share. These different deployment methods provide developers a choice based on the application deployment and security requirements.

3. Better development. With smart clients, both the tools and the architecture are far more robust. Using Visual Studio with Windows Forms means a full-featured IDE with full debugging capability. The smart client architecture means that your application doesn’t need to be concerned with managing state or callbacks to the server within your application. Resources and data are always available to the client.

4. Offline support. With increasing numbers of remote users and users running applications on PDAs and phones, the ability to work offline is becoming more of a requirement. Improved data caching means that users can continue to work even if they’re offline or in a situation where they’re only occasionally connected to a network. Data can be synchronized through the database, or you can use something like MSMQ to post changes to a queue and then those changes propagate upon connection.

Implementing offline capability isn’t seamless. It requires developers to write code to detect when users are connected and handle data synchronization. Smart clients can support this model, whereas Web applications require a constant network connection.

5. Use of client resources. The ability for smart clients to use client resources means that developers can create truly functional applications for their users. Because data can be cached on the client, operations that might take a long time, such as a complex calculation or a report, can be optimized. Smart clients are designed to utilize client hardware and are ideal for applications that use hardware like scanners or label printers.

As a developer, I’ve found that smart client provides an excellent model for creating software that delivers what my users need. That said, there are scenarios when it’s more appropriate to implement a standard browser-based application. For example, the Web is ideal for software that displays text or for simple applications.

If you’re currently implementing a Windows Forms application, I suggest integrating as many smart client features as you can so that your software can meet future needs. For example, users may not have an immediate need for offline capability. But as your user base expands, this could very likely become a requirement in the future. If you’re at the architecture crossroads, smart client might just be the road to take.

Dianne Siebold is a programming writer at Microsoft and owner of TechMedia Press. She specializes in documenting APIs, SDKs and writing white papers.

CORRECTIONS: OOXML, the Microsoft-driven proposed document standard, stands for Office Open XML. It was incorrectly defined in the Feb. 15 issue.

Work on JSR 73, the Data Mining API specification, was completed in 2004. The year was incorrect in a story that ran in the Feb. 1 issue.


Share this link: http://www.sdtimes.com/link/30273
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading



 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 3/15/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Google Code turns 5
Google Code Turns 5, and adds a Paxos Algorithm to make the system more stable and reliable.
03/17/2010 11:16 AM EST

Test your Visual Studio 2010 know-how
Microsoft is offering free beta certification exams for Visual Studio 2010.
03/17/2010 11:08 AM EST

Microsoft lifts the hood on IE9
Microsoft is previewing IE9.
03/16/2010 01:10 PM EST

 

Events calendar tab
3/22/2010 to 3/25/2010
Santa Clara, Calif.
The Eclipse Foundation

4/12/2010 to 4/14/2010
Las Vegas
Penton Media

4/12/2010 to 4/15/2010
Santa Clara, Calif.
O'Reilly Media

4/19/2010
New York City
Flagg Management

4/25/2010 to 4/28/2010
Overland Park, Kans.
IIUG