Welcome!

.NET Authors: Bruce Armstrong, Pat Romanski, Liz McMillan, Yeshim Deniz, Dmitry Sotnikov

Related Topics: .NET

.NET: Article

The Smart Client Revolution

The Start of a New Generation

In May of 2003 Microsoft asked me to do a keynote-like session at the Visual Studio.NET launch event in Oslo, a trip I just couldn't pass up. The problem was that I had no idea what a smart client application was. So, I had to quickly get smart on smart client applications. Before I go through the attributes of what a smart client is, let me tell you that back then no one could really agree on the definition of a smart client application. So, the research was a frustrating task. In fact, a few short months later I ran a smart client "chalk talk" at the PDC. I pulled a number of smart client experts on stage and was amused as the experts and audience spent the entire hour arguing about the definition of a smart client application.

So what is a smart client application? It's easiest to start with what it isn't - it is not a browser-based application. One of the most important attributes of a smart client application is its support for online and offline scenarios. Smart client applications also run on the client machine, using the local CPU so it is fast and can utilize devices natively like printers and RFID devices. Smart client applications have intelligent deployment and update, which is almost impossible in the COM world. And the most important attribute of a smart client application - it's built on .NET. I'm not alone in this thinking. Microsoft has no real competition in this space. And they have plenty of competition almost everywhere else.

There are no real smart client applications (nor the tools to build them) on Microsoft's competitor's platforms if you truly measure them against the attributes I describe above. That's not to say there won't be and there won't be soon. I know all the Microsoft competitors and some newcomers have made announcements on some pretty cool smart client application technologies. I'm saying it's a "green field" right now and the Microsoft .NET smart client application is poised for dominance.

The five most significant technologies used to build smart client applications are .NET Windows Forms, the .NET Compact Framework (for small devices like Pocket PCs), InfoPath (for XML forms-based applications), Information Bridge Framework (IBF), and Visual Studio Tools for Office (VSTO). When I first heard about these Office technologies a few years back I, like you, completely discounted them. Now I am enamored with them. With VSTO, I can build an application that manifests itself in a three-sheet Excel workbook with a pivot table and a chart, and I can do it under 100 lines of managed code. And now I can deploy it easily and securely because the plumbing that runs it is .NET. That is powerful. Now I am very honest about the Microsoft technologies that are great and the ones that are not so great and I believe our clients appreciate that. And I can tell you that these five technologies are fantastic.

Smart clients represent a new generation of applications that provide all of the benefits of a rich client with the manageability of a thin client (browser-based application). Smart client applications represent a practical alternative to thin clients and offer huge potential to more tightly engage with the user, and to provide valuable functional improvements that just aren't easy to do in a thin client - let alone do securely. So, the way an application is manifested, deployed and updated are more things the architect has to worry about - but that's a good thing.

The only thing holding back the .NET smart client revolution from exploding is the dependency of the .NET framework at the client machine. Microsoft doesn't help us much with that. The .NET Framework isn't even installed by default in XP SP2. But it is getting out there, and savvy companies are driving framework installs so they can leverage the power and ease of building .NET smart client applications.

More Stories By Tim Huckaby

Tim Huckaby is CEO of InterKnowlogy, a software and network engineering firm and a Microsoft Partner focused on solutions built in .NET. He has worked on and with product teams at Microsoft for many years, has coauthored several books, and is a frequent conference speaker.

Comments (4) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Edward 01/07/05 08:14:19 PM EST

Check out OSGi(http://www.orgi.org). It's a standard smarter then .NET smart client.

Frank Jacobs 11/16/04 03:41:12 PM EST

IBM's Workplace Client Technology also meets the criteria that you give for a smart client application:

- runs on client
- can utilize local devices like printers
- intelligent deployment and update
- runs both online and offline with built in synchronizing

Like .NET, it does have a client requirement: namely a Java VM. It has the advantage over .NET in that the clients can be Windows, Linux and soon Macintosh.

http://www.lotus.com/products/product5.nsf/wdocs/workplaceclienttech

Tim 10/13/04 11:16:20 AM EDT

Interesting read.

The author, however, states that there are no other smart client technologies. Wrong. Better do your research.

See: http://tendu.net/
http://java.sun.com/developer/technicalArticles/ThirdParty/Tendu/

Dennis Farr 10/13/04 09:06:27 AM EDT

'smart client' sounds a lot like 'applet'. Yep, Microsoft is out on the leading edge of technology there. Let me think, why weren't applets a good idea?