Turn Left - A weblog by InetSolution

What is Microsoft Silverlight? (and what it is not)- Part 1

By Justin
Posted on May 30, 2008

Comments (0)

Microsoft Silverlight is a brand new technology built on the heels of Windows Vista's GUI, or more specifically, the Windows Presentation Foundation (WPF). Silverlight currently exists in two versions: version 1.1, which is the only stable release out right now, and version 2.0, which is still in beta, though its expected to be released to the public in stable form sometime in August 2008.

Background

Microsoft Silverlight is based heavily on WPF, so background on WPF is important to understanding what Silverlight is really all about. WPF is the new architecture driving the next generation of user interfaces on Windows. The first major public release of WPF came with the release of Vista, it was marketed quite a bit from a visual aspect showing off transparency effects, blurring, animation and interactive text effects etc.

WPF is a complete re-design of how the developer will design graphical user interfaces (GUI) for Windows. The reason for this re-design is based upon many factors, but the main ones include the need for high fidelity user interfaces, the mass availability of graphics processing units (GPU) in personal computers (they are no longer relegated to just gamers and CAD users) and the benefits of vector-based graphics in user interfaces.

WPF brings a lot of benefits to the old way of designing user interfaces. First, they make use of vector graphics,  which is exactly what Flash animations use as well as any 3D graphics system. The benefit with vector graphics is that they can be resized without losing quality (such as in the case of a classic pixel image, where details are lost since the information is finite). Vector graphics are founded on mathematical principles, so a line is now an equation, instead of a list of pixel locations, meaning, you can change the values in that equation, equating to no loss (think zooming in on the line, rotating the line around, morphing the line in some way, etc).

WPF allows developers to create user interfaces through the use of a new standard XML language called XAML (Extensible Application Markup Language). WPF also brings together all facets of a user interface including graphics, animation, controls, sound, video, images, input and even 3D. Lastly, WPF provides support to display information on any kind of display imaginable, from a standard computer screen, to hand-held devices and printers, the resolution doesn't matter. It also provides a powerful architecture for composing custom controls, which I anticipate will knock the socks off of any previous control suite any of us have seen to date. Suffice it to say, its a good time to be a Windows developer. Lastly, all of what WPF provides is based upon the .NET Framework, so all the knowledge developers have now of .NET can easily be carried forward into designing solid and usable user interfaces almost immediately.

What is Silverlight

Basically, Silverlight is a browser plugin, that currently supports Internet Explorer, Safari and Firefox. Silverlight is essentially a small extension to the web of what WPF is to a Windows desktop. Silverlight is best described as a mash-up of a subset of WPF, as well as a subset of the .NET Framework, also having support for AJAX and LINQ and web services among others.

Since Silverlight is a browser plugin, anything you develop for Silverlight will work across any platform, similar to Flash and Java. The biggest benefit that Silverlight brings to the development table is that it captures the outstanding user interface design architecture of WPF and provides a rich set of functionality by the .NET Framework and brings this all together within the development environment of Visual Studio.

Benefits of Silverlight

Silverlight applications provide for very rich user experiences on the web. They can be embedded into existing web pages easily, in much the same way you would add Flash to a site. Silverlight has essentially limitless possibilities when it comes to designing custom user controls for the Internet. Above all are the benefits of the WPF UI functionality and the inclusion of a mini .NET Framework for networking, access to web services, etc.

Misconceptions

Oftentimes I think the best way to describe something is by explaining what it is not. Silverlight is not a new way to develop web sites or web applications, nor is it a replacement of ASP.NET. Silverlight applications are client-side applications, not server. While Silverlight does support 3D rendering, it (like WPF) is in no way a replacement of DirectX or OpenGL. It is probably most wise to think of Silverlight in the same way that AJAX is an extension to existing web technology. It's probably not a good idea to go to the extreme and develop entire solutions based on AJAX, Silverlight or Flash, instead in most cases it would be better to develop the solution in ASP.NET and then identify areas where AJAX, Flash or Silverlight could benefit.

Conclusion

Developing Silverlight/WPF applications is just plain fun. While most programmers enjoy programming almost anything by their very nature, I've never come across an architecture such as WPF (on which Silverlight is based) that is so much fun to develop against. The tools provided within Visual Studio 2008 and Microsoft's Expression series of applications (particularly Expression Blend) are outstanding and it very rewarding when you cook up an interesting and useful new control in a short time that wouldn't have even been possible prior to WPF, without writing your own graphics engine along the way. Since Silverlight 2.0 is still in beta, Microsoft recommends not writing mission critical applications, but in my research into Silverlight, I haven't encountered any bugs or issues that prevented me from tinkering. Stay tuned for Silverlight Part 2 in the coming days.

If you want to get started developing Silverlight applications, I recommend the following links:

Silverlight Plugin -http://www.microsoft.com/silverlight/

Silverlight Development Tools - http://www.microsoft.com/silverlight/resources/tools.aspx

Expression Blend - http://www.microsoft.com/expression/products/overview.aspx?key=blend

Silverlight Showcase - http://silverlight.net/showcase/default.aspx

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Who is InetSolution?

Jason - Project Director
Justin - Lead Architect & ASP.Net Developer
Donovan - Creative Director
Mac - ASP.Net Programmer
Larry - ASP Programmer/Requirements Guru
Mosh - ASP.Net Programmer
Paul - Software Architect & DBA
Jay - Weekend & Holidays Sys Admin
Karen - Business Development & Client Care

Our Services

Web Design/Development
We practice a user-centered development philosophy. We work with clients who place their customer's needs first. We need to know who will use your site and why.
Secure File Exchange
Turn your website into a state-of-the-art file exchange system, requiring only a web browser, username and a password.
eCommerce Web Development
We have experience, know-how and superior customer support to ensure that your store is profitable and that your investment with InetSolution earns a high return.
Disaster Recovery Hosting
We provide fully-managed SQL server database hosting for companies seeking a warm disaster recovery site.
About InetSolution

We make business websites profitable. We do it with usable design, solid programming and unique, methodical marketing.