Silverlight Features - a Comparison with Adobe Flash

Jan 20, 2009

First of all, Silverlight makes use of a built-in CLR engine (discussed in more detail in the last article from this series, see below) that delivers a high performance execution environment for the browser. Because Silverlight uses the same core CLR engine that works with the full .NET framework, it delivers the same type-system, garbage collector and JIT code generation engine that the present day .NET code uses. Developers can write .NET code that runs the same in Silverlight, ASP.NET and a WinForms/WPF Windows application, without requiring any modifications to the code. Due to the compiled execution supported by the .NET framework, Silverlight allows the high performance .NET code to be executed within the browser, more than 250 times faster than interpreted Javascript.

Silverlight includes support for a Windows Presentation Foundation user interface programming model. It enables a developer to program a user interface with managed code or event handlers and it supports the ability to define and use encapsulated user interface controls that are built with any managed .NET language.

Silverlight includes a rich framework library of built-in classes that can be used to develop browser-based applications. This framework library is a subset of the complete .NET framework class library that is being used already, enabling developers to easily re-use their existing skills and knowledge. It includes support for collections, generics, IO, threading, globalization, networking and LINQ.

More over, Silverlight does not require ASP.NET to be used on the backend web-server, which means that Silverlight can be used with PHP on Linux, for example. Silverlight can be easily integrated on the client and ASP.NET together on the server. Also, Silverlight can use the standard ASP.NET application services, like memberships, roles, profiles etc, and can call WCF or ASMX web-services hosted within ASP.NET.

Silverlight technology provides a managed HTML DOM API that enables a developer to program the HTML of a browser using any .NET language. This is similar to the DOM provided by JavaScript, but it's easier for programmers to handle, due to the specific advantages of .NET over JavaScript: better debugging support, more predefined functionality (available from the framework) and integrated support in Visual Studio. The Silverlight DOM also provides the ability to have Javascript code within an HTML page call into .NET methods exposed from within the Silverlight control or application. Another interesting feature would be the inclusion of a JSON serializer that supports automatic marshalling of .NET datatypes to and from Javascript, which basically means that a developer can have a standard browser Javascript code call a C# method within Silverlight and have the C# method return a .NET collection which is then serialized by Silverlight into a Javascript collection for the browser.

Read more about it:

Multimedia in Silverlight
Silverlight Features - a Comparison with Adobe Flash
Development Premises
Common Language Runtime on Silverlight