Silverlight is Microsoft’s implementation of a cross-browser, cross-platform client framework that allows designers and developers to deliver Rich Internet Applications (RIA) embedded in Web pages. Silverlight is fitted with a flexible media pipeline that makes it extremely easy to implement media-rich controls in your Web applications.

You can look at the Silverlight framework as a combination of three very different architectures: the browser plug-in, presentation framework, and .NET framework. The culmination of these frameworks allows Silverlight to bridge the gap between presentation user interface (UI) using declarative languages and functional programming using a subset of the .NET framework. The lightweight browser plug-in provides the necessary interaction with the browser enabling the same Silverlight application to run on multiple platforms. The plug-in must be installed by the user before Silverlight applications can be viewed in the browser. Silverlight applications are implemented as embedded objects in Web pages. When the browser encounters a Silverlight object in the Web page, the plugin downloads an XAP package from the Web server that contains the binaries and resources for the Silverlight application and then begins code execution inside the Web page.

Silverlight applications are run as client-side applications without the need to refresh the browser to update the UI. However, because of the built in .NET framework, Silverlight applications can easily integrate with server-side controls and services. Using Silverlight’s implementation of the .NET framework, developers can easily integrate existing libraries and code into Silverlight applications. Silverlight’s presentation framework is a subset of the Window Presentation Foundation (WPF), which is based on the eXtensible Application Markup Language (XAML) programming language. The XAML language is simply based on the XML language with application elements that map to objects and properties in the .NET framework. Because it is based on the XML language format it can be easily parsed and integrated with many technologies. The XAML language lends itself to the UI design side of Silverlight because it is simple to implement and understand. All of the UI generated by XAML is vector based, allowing it to be dynamically reshaped and resized easily while maintaining a crisp visual effect.

Silverlight’s implementation of WPF provides a rich set of controls such as buttons, calendars, text boxes, scroll viewers, a data grid, and much more. These controls are easy to implement in the XAML language as well as easy to access from .NET managed code. Silverlight’s media pipeline makes it simple to stream media such as WMV, MP3, and JPEG files to your application UI. This allows you to add rich UI elements that can give users a true Web experience.

The biggest reason to use Silverlight is that it seamlessly integrates the XAML declarative language with the .NET framework. XAML adoption is growing rapidly because of how easy it is to implement amazing UI interfaces. Many developers already have applications and libraries written in . NET. That code can usually be easily modified to fit Silverlight applications. The Silverlight platform appeals to both designers and to developers because it provides a dynamic platform that makes it easy to develop powerful Web applications that incorporate rich graphics, audio, and video. There is a distinct division between the declarative XAML designers use and the .NET managed code that developers use, allowing each side to implement its piece and easily integrate the two. Another reason Silverlight appeals to both designers and developers is that Microsoft offers powerful tools that make it easy to implement Silverlight applications. Microsoft’s Expression Suite provides useful tools to implement Silverlight UI and encode media. Microsoft’s Visual Studio provides a dynamic development interface with tools that speed up and increase productivity.