When Did Clients Get So Smart?
This issue marks the sixth anniversary of our merger, when Microsoft Systems Journal and Microsoft Internet Developer combined to become MSDN Magazine. We've been around to witness the birth and growth of the Microsoft .NET Framework and Web services, and the evolution of the smart client model of software design. The changes in application models have been surprisingly brisk over the past six years, as the combination of richer programming tools and more reliable connectivity have enabled leaps in what is possible.
For years, we programmed along happily, creating our standalone apps that ran on Windows. They did a lot of stuff. They ran the workflow for the accounting department (which consisted of one chain-smoking guy who wore the same Santa Claus tie every day of the year). They collected data (the number of widgets the accounting department lost track of this week). They even made it possible for the accounting department to run a mail merge for its holiday card shipments.
Then someone had a bright idea. Why not take all those applications and put them online? We could give it a snappy name like the "Web," and you would only need a single piece of software ever again—let's call it the "browser." That sounds good. From then on, all of your important software would run off a server somewhere in North Dakota, and boy wouldn't that be easy!
But here's the problem. You know those sites that make you watch a two-minute Flash intro of dancing utensils before a "Click to Skip" button slowly fades in just as the last spoons are rolling off the screen? The graphics are completely orthogonal to the actual functionality of the site's application. More importantly, the Click to Skip button is in a different place every time. And that's the big downfall of the thin client in our eyes: every one of them tried to reinvent the user experience, ignoring much of what we know about human behavior.
Another element of human behavior is the simple inability to trust that things will always work properly. Ironically, you're more likely to lose work stored locally than data stored remotely in a redundant server, but the feeling of holding a copy of what you've done is elemental.
But "regular" applications had their own issues. Many of you will recall some program you got a decade ago that showed up on a stack of 3.5" floppies. You'd insert disk 1 to start the installation, then disk 2, then disk 5...then back to disk 1. Installation was a nightmare. The program would take it upon itself to overwrite your DLLs with its own older versions, because they were the ones it had been tested against. On the other hand, the program didn't need a high-speed connection to work properly.
So in between traditional apps and thin clients, smart clients started to grow. A smart client sits on the client machine, but at the same time it makes use of the connectivity that most of us have to exchange data and services from elsewhere. Outlook is a good example of a smart client. You connect to your server, work on your mail, and when you disconnect, the experience is seamless. You can keep working, using your data as before.
Just before MSDN Magazine was created, MIND was covering SOAP, a new XML protocol that helped drive the very idea of the .NET Framework. Our coverage history over the past six years has been rich with .NET, but in a larger sense it's been all about smart clients. SQL Server, BizTalk, mobile platforms, and Windows Forms have all played a part in the move to smart clients. Think back to just six years ago. An application that could download its own patches, or that could work seamlessly online or offline, was a stretch. In 2006, this is expected behavior for any serious program.
If the past half decade (plus a year) has provided the changeover from applications to smart clients, what will the next six years bring? It could be that in 2012, smart clients will be known by a different name: applications.
Thanks to the following Microsoft technical experts for their help with this issue: Mark Boulter, Shawn Burke, Rob Caron, Eric Carter, Joe Duffy, Jessica Fosler, Ken Henderson, Eric Jarvi, Ashok Kamath, Jason Lucas, Doug Neumann, Lukasz Pawlowski, Matt Powell, Lutz Roeder, Jason Shirk, Dharma Shukla, Brian Welcker, and David R. Williamson.
Active Directory, Excel, InfoPath, IntelliSense, Microsoft, MSDN, Outlook, PowerPoint, SharePoint, Visual Basic, Visual C++, Visual C#, Visual SourceSafe, Visual Studio, Windows, Windows NT, Win32, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation. Other trademarks or tradenames mentioned herein are the property of their respective owners.
MSDN Magazine does not make any representation or warranty, express or implied with respect to any code or other information herein. MSDN Magazine disclaims any liability whatsoever for any use of such code or other information.