Microsoft Silverlight version history
Microsoft Silverlight is an application framework for writing and running rich internet applications that was actively developed and marketed by Microsoft from 2007 to 2012. This is a technical overview of the platform's history.
Silverlight 1, which was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E) and released in 2007, consists of the core presentation framework, which is responsible for the UI (user interface), interactivity and user input, basic UI controls, graphics and animation, media playback, Digital rights management (DRM), and DOM integration. It is made up of the following components:
- Input—handling input from devices like keyboard, mouse, stylus etc.
- UI core—managing rendering of bitmap images (including compressed raster images like JPEG), vector graphics, text and animations.
- Media—playback of MP3, WMA Standard, WMV7, WMV8 and WMV9/VC-1 streams.
- XAML—to allow the UI layout to be created using XAML markup language.
A Silverlight application starts by invoking the Silverlight control from the HTML page, which then loads up a XAML file. The XAML file contains a Canvas object, which acts as a container for other elements. Silverlight provides various geometrical primitives like lines, ellipses and other shapes, to elements like text, images, and media, etc. The elements are properly positioned to achieve the desired layout. Any arbitrary shape can be created as well. These elements can be animated using Event triggers; some animation effects are predefined, others can be created as composite of the pre-defined effects. Events like keyboard or mouse movements can also raise Events which can be handled by custom scripts.
Silverlight 2 (previously referred to as version 1.1) includes a version of the .NET Framework, implementing the same full Common Language Runtime (CLR) version as .NET Framework 3.0; so it can execute programs written in any .NET language. (By default, however, reference assemblies compiled with the regular .NET Framework cannot be referenced.) Unlike the CLR included with .NET Framework version 3.5 and earlier, but like .NET Framework 4.0, the CoreCLR instance included in Silverlight can be hosted with another instance of one of the desktop CLRs in one single process. With this, the XAML layout markup file (
.xaml file) can be augmented by code-behind code, written in any .NET language, which contains the programming logic. It can be used to programmatically manipulate both the Silverlight application and the HTML page which hosts the Silverlight control. The XAML markup, as well as the code, is compiled into CLI assemblies which are then compressed using ZIP and stored in a
Silverlight ships with a lightweight class library which includes features such as extensible controls, web services, networking components and Language Integrated Query (LINQ) APIs. This class library is a subset of, and is considerably smaller than, .NET Framework's Base Class Library (BCL). Silverlight code runs in a sandbox, thus preventing the invocation of platform APIs.
The version of .NET Framework in Silverlight adds a subset of Windows Presentation Foundation (WPF) UI-programming model, including support for shapes, documents, media and animation objects of WPF. Beta 2 onwards, it ships with more than 30 UI controls (including
Calendar controls), for two-way databinding support, automated layout management (by means of
Grid, etc.) as well as data-manipulation controls, such as DataGrid and ListBox. UI controls are skinnable using a template-based approach. Third-party libraries of expanded UI-control sets are also available.
The included BCL provides classes for collections, reflection, regular expressions, string handling and data access. It also supports LINQ, with full support for LINQ to Objects and expression trees. Almost all of the
System.Linq.Expression namespaces are exposed. It also supports serialization of objects, for data persistence. Silverlight can handle data in RSS or JSON format, in addition to XML. The BCL provides enhanced support for working with XML data, including the
XMLWriter classes. Silverlight 2 also supports asynchronous programming via the use of the threading libraries.
Silverlight also includes classes for data access over web services, REST, Windows Communication Foundation (WCF) Services and ADO.NET Data Services. The networking support in Silverlight can be used by Silverlight applications to communicate using HTTP, or at the lower socket level. Cross-domain communication is supported. Silverlight uses an XML-based configuration file to control the cross-domain resource-access policy, for both HTTP and socket connections. It can be used by site administrators to control which resources a Silverlight application can access, when that application did not originate in the domain of the site. In addition, Silverlight also supports the Adobe Flash Cross-domain policy file format. Silverlight sockets can only initiate a connection; they cannot listen for connections.
Silverlight 2 includes the Dynamic Language Runtime (DLR) which allows dynamic compilation and execution of dynamic (scripting) languages. Compilers for the languages based on the DLR (including IronPython and IronRuby) are [to be?] packaged with the Dynamic Languages application in the
.xap package. The Dynamic Languages software development kit\SDK includes a web server named Chiron, that can dynamically package all the dependencies for the Dynamic Languages application and serve it to the browser. The first upcoming languages written for the DLR are Managed JScript, IronPython 2.0, and IronRuby. Microsoft also plans to build Visual Basic .NET 10.0 (VBx) on the DLR. All four languages share the same infrastructure, to allow Silverlight to compile and execute the language source. Conversely, other .NET languages must be compiled ahead-of-time and delivered to Silverlight as .NET assemblies. The implementation of Managed JScript conforms to the ECMAScript 3.0 specification, and Microsoft asserts that it is 250 times faster than interpreted JScript.
Silverlight 2 includes Deep Zoom, a technology derived from Microsoft Live Labs' Seadragon. It allows users to zoom into, or out of, an image (or a collage of images), with smooth transitions, using the mouse wheel. The images can scale from 2 or 3 megapixels in resolution into the gigapixel range, but the user need not wait for it to be downloaded entirely; rather, Silverlight downloads only the parts in view, optimized for the zoom level being viewed. Beta 2 onwards, Deep Zoom uses an XML-based file format.
Media features in Silverlight 2 include:
- WMA Professional support, including WMA 10 Pro low-bitrate modes. However, multi-channel audio content is still down-converted to stereo output.
- Content protection powered by Microsoft PlayReady DRM client.
- Server-side playlists in Windows Media Services.
- Media Stream Source API.
The Media Stream Source is the API responsible for enabling adaptive streaming of media. Adaptive streaming allows the player application to choose the bit rate of the media based on available client bandwidth and central processing unit (CPU) resources. Media Stream Source allows the developer to specify a custom method of retrieving media data, the only requirement being that the final video and audio streams be presented to Silverlight runtime in a format that Silverlight can decode (VC-1, H.264, WMA, MP3, etc.). This allows extensible support for otherwise natively unsupported file formats (i.e. MP4, Matroska, Ogg), protocols (i.e. Shoutcast) and delivery methods (i.e. adaptive streaming, peer-to-peer (P2P)). Microsoft first publicly showcased Media Stream Source by powering the NBC Olympics website with their own implementation of adaptive streaming.
Silverlight 2 also allows limited filesystem access to Silverlight applications. It can use the operating system's native file dialog box to browse to any file (to which the user has access). The file is sanitized of path information, to prevent the application from getting access to information such as user name, and can be opened only in read-only mode. For local storage of data, Silverlight provides isolated local storage (isostorage), namely, outside the browser cache, in a folder hidden inside the private user-profile folder. It is set to 1 MB per URL by default, but this can be changed by the user. Data stored by a Silverlight application in the isostorage is identified by the URL from which it loads, and can be accessed by that application only. All instances of Silverlight share the same isostorage, so all instances of the same Silverlight application can share the saved data, even if they are running on different browsers.
Silverlight CoreCLR uses an attribute-based security model, as opposed to the Code Access Security (CAS) model of the desktop version of .NET Framework. Assemblies are marked with a security attribute, which can be transparent (
SecurityTransparentAttribute), safecritical (
SecuritySafeCriticalAttribute) or critical (
SecurityCriticalAttribute). Methods in transparent assemblies run with partial trust, and codes within such assemblies cannot call critical methods (methods which can cause system-wide changes); neither can transparent assemblies contain unverifiable code (use the unsafe C# keyword or use pointers) or invoke system functions by means of P/Invoke. Code in both critical and safecritical assemblies run with full trust, and are therefore not subject to such limitations. However, a transparent method can call a safecritical method, and a safecritical method can call a critical method. In such a case, the safecritical method will verify that the call is both safe and within the limited rights of the caller; if so, then the safecritical method will proxy the call to the requested critical method. In fact, the IsoStorage APIs are exposed as safecritical methods. An assembly whose security attribute is unset is run as a transparent method. Analogous limitations also apply to type-inheritance; namely, in the cases of virtual-method calls and interface-method calls. Silverlight assemblies can contain members that are not usable by CoreCLR, as long as they can be processed by the .NET Framework CLR; such methods will not be loaded when the assembly is being executed by CoreCLR.
However, only platform code is allowed to be marked as critical or safecritical. The Silverlight runtime ensures that platform assemblies are loaded only from the Silverlight installation directory, and are digitally signed by Microsoft. This effectively means that user-application assemblies can only be transparent code (run under partial trust and limited rights). Platform code can be marked with either attribute. The BCL methods of the .NET Framework, which have the
Internet attribute set, allowing them to be called from untrusted code originating from the Internet, are exposed in Silverlight BCL as transparent methods.
Silverlight 3 was announced at the International Broadcasting Convention (IBC) 2008 show in Amsterdam on September 12, 2008. It was unveiled at MIX09 in Las Vegas on March 18, 2009. A beta version was made available for download the same day. The final version was released July 9, 2009.
Silverlight 3 includes an increased number of controls—including DataGrid, TreeView, various layout panels, DataForm for forms-driven applications and DataPager for viewing paginated data. Some of these controls are from the Silverlight Toolkit. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the hyperlinked navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.
On the media front, Silverlight 3 supports Advanced Audio Coding (AAC) audio decoding as well as hardware-accelerated H.264 video decoding. Silverlight 3 also offers 1080p smooth streaming. The native multimedia pipeline is also programmatically exposed, so that other formats can also be supported by third parties using managed code decoders. Silverlight 3 supports perspective 3D which enables 3D transformations of 2D elements. These transformations, as well as many 2D operations like stretches, alpha blending etc. are hardware accelerated. Custom animations, including transforms and blends, can be created on Silverlight elements using High Level Shader Language (HLSL) to make use of pixel shaders. A bitmap API is provided to let Silverlight 3 applications manipulate bitmaps. Silverlight now uses the graphics processing unit (GPU) to accelerate the composition of Visual Trees (like WPF, Silverlight elements correspond to Visual elements, which, when coupled with the layout information, forms a Composition Tree or Visual Tree which is then rendered to form the final display; see WPF architecture). Visual trees can now be cached; this increases performance in cases like transforms, which creates lots of throw-away intermediate states, by not making the state transitions on the main Visual tree. Silverlight 3 now also supports ClearType text rendering.
UI elements in Silverlight 3 supports element-to-element binding—which allows one element to be bound to the state of another element, as well as a validation mechanism for data binding. Unlike Silverlight 2, which allowed the applications to save files only to the local isostorage, Silverlight 3 applications can save to any location on the file system via the system Save File dialog. However, the path where the file is saved will still be hidden from the Silverlight application. Any external assemblies used by Silverlight applications are cached too so that they need not be redownloaded for subsequent instantiations of the application.
Silverlight 3 also includes a LocalConnection API to communicate (using a named pipe style model) among multiple running applications on the same machine, irrespective of the browser and can monitor for network connectivity events. Silverlight 3 can optionally use Binary XML to communicate with WCF services.
Silverlight 3 supports Out-of-Browser experiences, i.e., Silverlight applications can be installed to the system for offline access (provided the application manifest is designed to allow local installation) where they run outside the browser. They are launched using the Start Menu or desktop shortcuts, and run without the browser window. Applications can check whether they are running inside a browser or not. When running outside of a browser, HTML interop is disabled. In addition, access to the Function Keys is enabled. Locally installed Silverlight applications still run in a sandbox.
Installed Silverlight 3 applications automatically check for updates asynchronously on every launch and updates are automatically installed. Running instances of the applications are informed when updates are available.
Silverlight 3 is now listed as a requirement for eFiling income tax returns for free in the US.
On November 18, 2009, at the Professional Developers Conference in Los Angeles, Microsoft Corporation unveiled a Beta version of Silverlight 4. The final version was released on April 15, 2010 (along with Silverlight 4 tools for developers).
New features in Silverlight 4 include:
- Support for Google's Chrome browser.
- Web cam and microphone support.
- Printing support.
- Improved mouse support including right button support and mouse wheel support.
- New notification support to display messages to end users.
- New and enhanced controls such as a RichTextBox and an enhanced DataGrid control.
- New support for implicit theming of controls.
- New hosted browser support for rendering HTML inside Silverlight.
- WCF data layer enhancements.
- Localization enhancements with bi-directional text.
- Support for Managed Extensibility Framework.
- Enhanced data binding support.
- Enhanced animation effects.
- Clipboard and drag and drop support.
- Deep Zoom performance enhancements.
- WCF Rich internet application (RIA) Services.
- Content protection for H.264 and support for playing offline DRM protected media.
Additionally, the following features are provided to out-of-browser (locally installed) Silverlight applications that have been explicitly granted "trusted" status:
- Full keyboard access while running in full screen mode.
- Programmatic access to a user's local document folder.
- Support for local Component Object Model (COM) objects.
On December 2, 2010 at the Silverlight Firestarter event, Silverlight 5 beta was announced for release in the 1st half of 2011. The final version was released on December 9, 2011.
New features in Silverlight 5 include:
- Supports GPU accelerated video decoding
- Built-in 3D graphics support
- Variable speed playback of media content with automatic audio pitch correction
- Improved power awareness
- Built-in remote-control support
- Supports faster application startup
- Provides 64-bit browser support
- Automated UI testing support for applications with Visual Studio 2010
- Delivers improved text clarity
- Developers can now debug data-binding expressions, set breakpoints on bindings.
- WCF RIA Services improvements include complex type support and better MVVM support.
|Version name||Version number||Release date|
|1 Community Technology Preview (CTP)||1.0.?||2006–12|
|1 Release to Web (RTW)||1.0.20816||2007-09-05|
(As 1.1 Alpha Refresh)
|1 Service release||1.0.21115.0||2007-11-20|
|1 Service release||1.0.30109.0||2008-01-15|
|2 Beta 1||2.0.30226.2||2008-03-05|
|1 Service release||1.0.30401.0||2008-04-08|
|2 Beta 2||2.0.30523.6||2008-06-06|
|1 Service release||1.0.30715.0||2008-07-27|
|2 Release Candidate Zero (RC0)||2.0.30523.9||2008-09-25|
|2 General Distribution Release (GDR) 1||2.0.40115.0||2009-02-19|
|3 GDR 1||3.0.40723.0||2009-07-28|
|3 GDR 2||3.0.40818.0||2009-09-01|
|4 Beta 1||4.0.41108.0||2009-11-18|
|3 GDR 3||3.0.50106.0||2010-01-20|
|4 GDR 0||4.0.50524.0||2010-06-03|
|3 Security Update||3.0.50611.0||2010-08-10|
|4 GDR 1||4.0.50826.0||2010-09-01|
|4 GDR 2||4.0.50917.0||2010-09-28|
|4 GDR 2.5||4.0.51204.0||2010-12-15|
|4 GDR 3||4.0.60129.0||2011-02-14|
|4 GDR 4||4.0.60310.0||2011-04-19|
|4 GDR 5||4.0.60531.0||2011-06-14|
|4 GDR 6||4.0.60831.0||2011-10-11|
|4 Security Update||4.1.10111.0||2012-02-14|
|4 Security Update||4.1.10329.0||2012-05-08|
|5 Security Update||5.1.10411.0||2012-05-08|
|5 Security Update||5.1.20125.0||2013-03-12|
|5 Security Update||5.1.20513.0||2013-07-09|
|5 Security Update||5.1.20913.0||2013-10-08|
|5 Security Update||5.1.41212.0||2016-01-12|
- "Silverlight architecture". Archived from the original on 2008-04-29. Retrieved 2007-06-05.
- "Silverlight 1.0 Beta QuickStart". Archived from the original on 2007-06-02. Retrieved 2007-06-05.
- ".NET Web-Product Roadmap (ASP.NET, Silverlight, IIS7)". Retrieved 2007-11-30.
- "Side by Side In Process CLRs Start with Silverlight". Retrieved 2007-05-12.
- Guthrie, Scott. "Silverlight Tutorial Part 1: Creating "Hello World" with Silverlight 2 and Visual Studio 2008". Retrieved 2008-02-24.
- "Microsoft Polishes the Silverlight". Retrieved 2007-05-02.
- Silverlight SDK Team. "What's new in Silverlight 2 Beta 2?". MSDN Blogs. Retrieved 2008-07-06.
- Guthrie, Scott. "Silverlight 2 Beta2 Released". Retrieved 2008-07-06.
- Guthrie, Scott. "First Look at Silverlight 2". Retrieved 2008-02-24.
- "Silverlight". Retrieved 2007-05-12.
- Sneath, Tim. "Some Great Silverlight Controls". Retrieved 2007-06-30.
- Guthrie, Scott. "Silverlight Tutorial Part 3: Using Networking to Retrieve Data and Populate a DataGrid". Retrieved 2008-02-24.
- Schwarz, Michael. "Silverlight Socket Comments". Retrieved 2008-03-12.
- Lam, John. "Dynamic Silverlight, Part 1: Hello World". MSDN Blogs. Retrieved 2008-03-12.
- Thorpe, Danny (2007-05-02). "MIX07: Extending the Browser Programming Model with Silverlight". Retrieved 2007-05-03.
- Sneath, Tim (2007-06-07). "Silverlight Isn't Just about Presentation". Retrieved 2007-06-13.
- Sneath, Tim (2007-06-13). "Programming HTML with C#". Retrieved 2007-06-30.
- "Silverlight 2 and Deep Zoom – Get ready to Build Your Own Photozooming collections". LiveSide. Archived from the original on 2008-05-16. Retrieved 2008-03-06.
- "Silverlight 2 'Deep Zoom'". Microsoft Live Labs. Retrieved 2008-03-09.
- Waggoner, Ben. "Media Features in Silverlight 2 Beta 2". Archived from the original on 2008-08-29. Retrieved 2008-08-29.
- Zambelli, Alex. "An Inside Look at NBC Olympics Video Player". Retrieved 2008-08-29.
- Farkas, Shawn. "The Silverlight Security Model". Retrieved 2007-06-08.
- Farkas, Shawn. "Silverlight Security III: Inheritance". Retrieved 2007-06-08.
- "How to: Explore Silverlight Assemblies with the Visual Studio Object Browser". Retrieved 2007-06-08.
- Farkas, Shawn. "Silverlight Security II: What Makes a Method Critical?". Retrieved 2007-06-08.
- "S. Somasegar launches Silverlight 3".
- Heuer, Tim. "A guide to Silverlight 3 new features". Retrieved 2009-03-23.
- "Experience IIS Smooth Streaming 1080p". Microsoft IIS.
- Edwards, Andru (10 July 2009). "Microsoft Silverlight 3 now available, takes aim at Flash, HD streaming".
- Hoffman, Kevin. "What's New in Silverlight 3?". Retrieved 2009-03-23.
- Hoffman, Kevin. "Creating an Out-of-Browser Application in Silverlight 3". Archived from the original on 2012-03-24. Retrieved 2009-03-23.
- Harsh, Mike. "Silverlight 3 Out of the Browser". Retrieved 2009-03-23.
- Heuer, Tim. "Silverlight 3 Out-of-browser Update Model". Retrieved 2009-03-23.
- "Silverlight 4 Beta What's New". Archived from the original on 2010-02-21. Retrieved 2010-01-21.
- "WCF RIA Services". Silverlight.net. Archived from the original on 2009-11-15. Retrieved 2011-07-26.
- "Silverlight 5 now Available!". Retrieved 2011-12-09.
- "Announcing Silverlight 5". Retrieved 2010-12-03.
- "Microsoft Silverlight Release History". Retrieved 2014-12-13.
- "Quick update on Silverlight". Retrieved 2007-11-30.
- "Microsoft rolls out Silverlight maintenance release". Archived from the original on 2009-01-11.
- Protalinski, Emil. "Silverlight 2 Beta 2 arrives on time, available now". Ars Technica. Retrieved 6 June 2008.
- Knor, Max. "Silverlight 2 Released". blogs.msdn.com. Retrieved 2008-10-21.
- "Microsoft Releases Silverlight 2 On Tuesday, Oct. 14". LiveSide. Archived from the original on 2012-02-22. Retrieved 2008-10-13.
- "Business-Ready Silverlight 4 Ships April 15".
- "Description of the update for Microsoft Silverlight: September 28, 2010".
- "Description of the update for Microsoft Silverlight: December 15, 2010".
- "Description of the update for Microsoft Silverlight: February 14, 2011".
- "Description of the update for Microsoft Silverlight: April 19, 2011".
- "Description of the update for Microsoft Silverlight: June 14, 2011".
- "MS11-078: Description of the security update for Microsoft Silverlight: October 11, 2011".
- "The Silverlight Blog: Silverlight 5 Beta – available now!". Archived from the original on 2011-04-26. Retrieved 2011-04-23.
- "Silverlight 5 RC now Available!". Retrieved 2011-09-01.
- "MS12-016: Description of the security update for Microsoft Silverlight: February 14, 2012".
- "MS12-034: Description of the security update for Silverlight 4: May 8, 2012".
- "MS12-034: Description of the security update for Silverlight 5: May 8, 2012". Retrieved 2014-12-13.
- "MS13-022: Vulnerability in Silverlight could allow remote code execution". Retrieved 2013-03-14.
- "MS13-052: Description of the security update for Microsoft Silverlight: July 9, 2013". Retrieved 2013-07-09.
- "MS13-087: Vulnerability in Silverlight could allow information disclosure: October 8, 2013". Retrieved 2014-01-16.
- "Description of the update for Microsoft Silverlight 5: March 11, 2014". Retrieved 2014-12-13.
- "MS14-014: Vulnerability in Silverlight could allow security feature bypass: March 11, 2014". Retrieved 2014-12-13.
- "July 2014 update for Microsoft Silverlight 5". Retrieved 2014-12-13.
- "December 2014 update for Microsoft Silverlight 5". Retrieved 2014-12-13.
- "May 2015 update for Microsoft Silverlight 5". Retrieved 2015-07-21.
- "MS15-080: Description of the security update for Silverlight 5: August 11, 2015". Retrieved 2016-01-04.
- "MS15-129: Security update for Silverlight to address remote code execution: December 8, 2015". Retrieved 2016-01-04.
- "MS16-006: Security update for Silverlight to address remote code execution: January 12, 2016". Retrieved 2016-01-04.
- "Silverlight DateTime parsing for Norway and Serbia: June 21, 2016". Retrieved 2016-07-17.
- "MS16-109: Security update for Silverlight: September 13, 2016". support.microsoft.com. Retrieved 2017-01-13.
- "MS16-120: Description of the security update for Silverlight: October 11, 2016". support.microsoft.com. Retrieved 2017-01-13.
- "MS17-013: Description of the security update for Microsoft Graphics Component on Microsoft Silverlight 5: March 14, 2017". support.microsoft.com. Retrieved 2017-05-10.
- "Security update for the libjpeg information disclosure vulnerability for Microsoft Silverlight 5: April 11, 2017". support.microsoft.com. Retrieved 2017-05-10.
- "Windows Uniscribe remote code execution vulnerability: June 13, 2017". support.microsoft.com. Retrieved 2017-06-14.
- "Update for Silverlight DateTime calculations to handle new Japanese eras: January 15, 2019". support.microsoft.com. Retrieved 2019-04-03.