April 2009

Volume 24 Number 04

Editor's Note - What's In Style

By Howard Dierking | April 2009

howardd.ednote.gif

Just like music and fashion, it seems that popular trends in development styles, paradigms, and architectures are cyclical. Don't get me wrong—this isn't to say that we don't make progress with each cycle. However, it is just funny to see how the next new thing is always a little eerily familiar; to that end, Raymond Chen nailed it in the title of his book and blog, "The Old New Thing." One of the best illustrations of this cycle in recent history can be found in the design choices around the presentation layer.

When it comes to trends in the presentation layer, we've witnessed some dramatic shifts between the desktop and the Web. As I'm sure you know, when the Web first came along, it was hardly in a position to serve as a viable platform for application development. Its role was to serve up static content pages; the job of creating rich user experiences was still well within the domain of the native Windows application (and yes, I'm purposefully ignoring ActiveX controls for this discussion). However, as the capabilities of Web servers increased, new server-side programming models grew in tandem, giving Web applications enough functionality to, when combined with the simplicity in deployment, cause a dramatic shift away from "thick-client" desktop applications.

The introduction of the .NET Framework, and more specifically ASP.NET, initially accelerated the trend towards 100% Web-based applications. However, successive versions of the framework also introduced a new capability called "click-once" deployment that sought to enable desktop applications to be seamlessly installed and run from a URL. Now you would be able to support all of the rich user experience capabilities in a rich-client application and still deploy it as if it were a Web application. It seemed as though the deployment problem had been solved, and the trend would shift back toward favoring the "rich" desktop application UIs.

However, this shift didn't really happen at the rate you might have expected on the surface, and I suspect that it was in part based on two forces. First, developing UI applications for Windows using metaphors such as clipping rectangles was dramatically different (and arguably more complex) from the hierarchical, container-based model of HTML. Secondly, the rise of AJAX programming (and the various support libraries to further simplify it) was enabling user experiences in Web applications that were comparable with those of desktop applications.

With AJAX continuing to grow in use for Web applications, a paradigm shift was also beginning to pick up speed on the desktop. Desktop applications could now target Windows Presentation Foundation, a framework that incorporated many of the same paradigms as Web applications; one of the single most important of these being composition. And with the introduction of Silverlight, Web applications could be built using not just the same paradigms, but essentially the same technology.

In looking at all of the back and forth over the years, I have two observations. First, both paradigms have pushed each other to be better by incorporating the good characteristics of one into the other. The very positive result from this, other than simply more powerful rendering platforms, is that the paradigms for creating UIs either on the desktop or on the Web are unifying. And this yields the second observation: that the best practices that have emerged around both presentation patterns and more general strategies for creating layered architectures are now directly applicable to both desktop and Web applications.

On that note, I have an announcement. We are excited to welcome Diego Dagum and The Architecture Journal to our MSDN Magazine and TechNet Magazine publishing team. This means that our team now has all three perspectives when it comes to the application of technology: the developer, the IT professional, and now the architect. Look to see even more coordination between the publications.

So while cyclical development trends may not bring back power ballads or parachute pants, they will continue to surface those patterns and technologies that have worked in the past, find what works with those of the present, and produce technologies that will enable the cycle to continue into the future.

Visit us at msdn.microsoft.com/magazine. Questions, comments, or suggestions for MSDN Magazine? Send them to the editor: mmeditor@microsoft.com.

Thanks to the following Microsoft technical experts for their help with this issue: Adrian Bateman, Sam Bent, Laurent Bugnion, Matt Ellis, Mike Fourie, Steve Fox, Don Funk, Alex Gorev, Aaron Hallberg, Luke Hoban, Robert Horvick, John Hrvatin, Bret Humphrey, Katy King, Brian Kretzler, Bertrand LeRoy, Dan Moseley, Stephen Powell, and Delian Tchoparinov.