Geeks With Blogs
Scott Thompson

Asynchronous (or multi-threaded) applications are common place on the desktop and have been for decades.  Without this ability, most of our favorite productivity tools would be non-existent.  As soon as one moves off the desktop and onto the Internet, the standard changes to one that is highly, if not exclusively synchronous (or single-threaded).  Of course, since Internet-based applications have historically served as simple content delivery mechanisms, the need for more robust, asynchronous-based applications didn't exist.  However, as more and more businesses move online with each passing day, the pressure for Internet-based applications to narrow the desktop gap is higher than ever before.  To the IT professional, this means not only the creation of a new development platform, but the establishment of a new era of software development.  Enter Silverlight.

Simply put, Microsoft Silverlight ( is a platform which enables the development of Rich Internet Applications (RIA's).  With its third release now in Beta, it combines the usability of a desktop application with the interoperability and deployment advantages of one that is web-based.  The Silverlight runtime, similar to Flash, adds itself as a plug-in into your browser (about a 4MB download).  Where Silverlight is significantly different from Flash is in how the applications are constructed.  It relies heavily on two technologies: XAML and the .NET Framework. 

XAML is a declarative, XML-based language used for the development of user interfaces.  It has the distinction of being standards-based and web designer friendly via tools such as Microsoft Expression Blend (  The .NET Framework is used for the creation of application logic itself, along with the web services required on the server tier.  This allows businesses who have invested in C# and VB.NET developers to continue to leverage their investment.

Although there are slight differences across browsers (there are in standard HTML too), Silverlight is able to leverage the power of the client machine to deliver a highly-functional and highly-performing user experience.  While this seems like we're regressing back to an old-school client/server mentality, the reality is that it's more of a hybrid.  User interface controls and code-behind logic that can run independent of a server are pushed to the client.  These run inside a security sandbox to limit any operations that could pose an unnecessary risk.  Any dynamic content retrieved from backend databases or more sophisticated business logic is performed through web services on the server.  In fact, one could argue that we are seeing web services reach their maturity through the capability offered by Silverlight. 

Although we won't go into detail on it here, it is highly encouraged that developers follow the Model-View-ViewModel (MVVM) pattern when developing in Silverlight.  For more information on this pattern, reference  

Most importantly, Silverlight's architecture is inherently asynchronous.  To the average end-user, this provides the type of non-blocking behaviors they take for granted today in their desktop applications.  To businesses, it means doing more with less.  Software as a Service (SaS) scenarios are now more realistic for them to invest in with the knowledge that it will decrease the large amount of capital historically invested in hardware and hardware support.  In the up and down markets of today, that can only have a positive impact.

The gap between desktop and web-based applications is as narrow as it has ever been.  Realistically, it will take time for the IT community to adjust to this capability.  Asynchronous applications are different animals that pose unique challenges to architects and developers alike.  If technology has taught us anything, there's no such thing as a free ride.  But, make no mistake, the potential benefits outweigh the impending challenges and the industry will no-doubt adapt quickly.

Posted on Wednesday, March 25, 2009 12:20 PM Silverlight | Back to top

Comments on this post: Microsoft Silverlight – Narrowing the Desktop Gap

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Scott Thompson | Powered by: