Microsoft Silverlight

Microsoft Silverlight is an application framework for writing and running rich Internet applications, with features and purposes similar to those of Adobe Flash. The run-time environment for Silverlight is available as a plug-in for web browsers running under Microsoft Windows and Mac OS X. While early versions of Silverlight focused on streaming media, current versions support multimedia, graphics, and animation, and give developers support for CLI languages and development tools. Silverlight is also one of the two application development platforms for Windows Phone, but web pages which use Silverlight cannot run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there is no Silverlight plugin for Internet Explorer on those platforms.

Over the course of about five years Microsoft released five versions: The first version was released in 2007; the fifth on May 8, 2012. It is compatible with later versions of Internet Explorer, Mozilla Firefox, and Google Chrome web browsers on Microsoft Windows (except Windows RT) operating systems, with Firefox and Safari under Mac and OS X, and with mobile devices using the Windows Mobile and Symbian (Series 60) platforms.

A free software implementation named Moonlight, developed by Novell in cooperation with Microsoft, was released to bring Silverlight versions 1 and 2 functionality to Linux, FreeBSD and other open source platforms—although some Linux distributions do not include it, citing redistribution and patent concerns. However, in May 2012, Moonlight was abandoned because of its lack of popularity.

Silverlight has been used to provide video streaming for many high profile events, including the NBC coverage of the 2008 Summer Olympics in Beijing, the 2010 Winter Olympics in Vancouver, and the 2008 conventions for both major United States political parties. Silverlight is also used by Netflix for its instant video streaming service. Netflix has stated in their Tech Blog that their goal is to move their video streaming service from Silverlight to HTML5 in the future.

Overview
Silverlight provides a retained mode graphics system similar to Windows Presentation Foundation (WPF), and integrates multimedia, graphics, animations and interactivity into a single run-time environment. In Silverlight applications, user interfaces are declared in Extensible Application Markup Language (XAML) and programmed using a subset of the .NET Framework. XAML can be used for marking up the vector graphics and animations. Silverlight can also be used to create Windows Sidebar gadgets for Windows Vista.

Silverlight supports H.264 video, Advanced Audio Coding, Windows Media Video (WMV), Windows Media Audio (WMA) and MPEG Layer III (MP3) media content across all supported browsers without requiring Windows Media Player, the Windows Media Player ActiveX control or Windows Media browser plug-ins. Because Windows Media Video 9 is an implementation of the Society of Motion Picture and Television Engineers (SMPTE) VC-1 standard, Silverlight also supports VC-1 video. According to the end user license agreement VC-1 and H.264 are only licensed for the "personal and non-commercial use of a consumer". Silverlight, since version 3, supports the playback of H.264 video. Silverlight makes it possible to dynamically load Extensible Markup Language (XML) content that can be manipulated through a Document Object Model (DOM) interface, a technique that is consistent with conventional Ajax techniques. Silverlight exposes a Downloader object which can be used to download content, like scripts, media assets or other data, as may be required by the application. With version 2, the programming logic can be written in any .NET language, including some derivatives of common dynamic programming languages like IronRuby and IronPython.

Adoption
According to statowl.com, Microsoft Silverlight had a penetration of 64.16% on May 2011. Usage on July 2010 was 53.54%, whereas Adobe Flash was installed on 95.26% of browsers, and Java support was available on 76.51% of browsers, making Adobe Flash the market leader in terms of penetration. Support of these plugins is not mutually exclusive; one system can support all three. Not all Web sites require a browser plugin; of those that do,, fewer than 0.3% sites used Silverlight and Java, 27% used Adobe Flash, although another source cites around 4% for Java.

Desktop computers
Silverlight requires an x86 processor with Streaming SIMD Extensions (SSE) support. Supported processors include the Intel Pentium III and up, and the AMD Athlon XP and up. Newer AMD Duron models are also supported.

The following table presents an availability and compatibility matrix of Silverlight versions for various operating systems and web browsers.

An upcoming Opera support was promised since May 3, 2007, when David Storey, the Chief Web Opener at Opera, revealed a Microsoft poster for MIX conference that had shown Opera integration as a part of Silverlight 1.1. , however, Silverlight still does not officially support Opera. Silverlight 1.0 could be made to work with Opera via a hack. Starting from Silverlight 2, hacks were no longer required.

On Linux and FreeBSD, the functionality is available via Moonlight. Moonlight is available for the major Linux distributions, with support for Firefox, Konqueror, and Opera browsers, provided it was obtained through Novell. Miguel de Icaza has expressed an interest in working with developers from other operating systems (BSD, Solaris) and other browsers (Konqueror, WebKit and Opera) to ensure that Moonlight works fine on their systems. Availability of Moonlight version 1.0 for FreeBSD was announced in March 2009, but has since been reported not to actually work. the current version of Moonlight (4 Preview 1) does not officially work on new versions of Firefox (newer than 3.x) on GNU/Linux-based operating systems. However, it can be installed in an unofficial way (for example using the Add-on Compatibility Reporter add-on) and with Firefox 11 it works correctly when installed. As noted above, the Moonlight project was abandoned in May 2012.

Pipelight is available. It is a plugin for Linux browsers which, when combined with Wine, enables Windows browser plugins, including Silverlight, to run.

Mobile devices
Silverlight is not available on Android or iOS, operating systems that are prevalent on the mobile market (as of 2013).

Silverlight is the primary development environment for Windows Phone and is based on Silverlight 4. For previous versions of Windows Mobile, the first Community Technology Preview (CTP) for Windows Mobile 6 was expected in the second quarter of 2008, but it still has not been officially announced. Microsoft has stopped focusing on bringing Silverlight to Windows Mobile 6.x. Nokia has announced plans to make Silverlight for Mobile available for S60 on Symbian OS, as well as for Series 40 devices and Nokia internet tablets. Silverlight for Mobile supports Silverlight 2 content and .NET languages. Silverlight for Windows Phone 7.5 is based on Silverlight 4.

Development tools
Silverlight applications can be written in any .NET programming language. As such, any development tools which can be used with .NET languages can work with Silverlight, provided they can target the Silverlight CoreCLR for hosting the application, instead of the .NET Framework CLR. Microsoft has positioned Microsoft Expression Blend as a companion tool to Visual Studio for the design of Silverlight User Interface applications. Visual Studio can be used to develop and debug Silverlight applications. To create Silverlight projects and let the compiler target CoreCLR, Visual Studio requires the Silverlight Tools for Visual Studio.

A Silverlight control is a ZIP format file with extension .XAP containing a list of one or more .NET managed assemblies (.DLL files) along with the AppManifest.XAML file containing this list along with the entry point (class and assembly). It can be hosted in any HTML file using an object tag, for example:

A Silverlight project contains the Silverlight.js and CreateSilverlight.js files which initializes the Silverlight plug-in for use in HTML pages, a XAML file for the UI, and code-behind files for the application code. Silverlight applications are debugged in a manner similar to ASP.NET applications. Visual Studio's CLR Remote Cross Platform Debugging feature can be used to debug Silverlight applications running on a different platform as well.

In conjunction with the release of Silverlight 2, Eclipse was added as a development tool option.

Licensing
An April 2007 to 2008 PC World report suggested that Microsoft intended to release certain parts of Silverlight source code as open source software, but a week later Sam Ramji, director of platform technology strategy at Microsoft, contradicted the rumors by confirming that the company had no plans to open Silverlight. Some controls that ship with Silverlight are available under the Microsoft Public License as a part of a separate project known as the Silverlight Toolkit.

Silverlight's proprietary nature is a concern to competition since it may harm the open nature of the World Wide Web. Advocates of free software are also concerned Silverlight could be another example of Microsoft's embrace, extend and extinguish strategy. Both Microsoft Silverlight and Adobe Flash are proprietary. Flash's file formats are publicly documented standards, as are Silverlight's.  However, the communication between a Flash player and a server is done by the proprietary protocol RTMP. Both Flash and Silverlight use patent-encumbered audio and video codecs.

Mono Moonlight implementation
The Mono Team abandoned development of Moonlight, a free and open-source implementation of both the Silverlight 1 and 2 runtimes.

The development has been discontinued as of 2012 due to the poor acceptance of Silverlight and restrictions Microsoft imposed on its utility.

The project was officially supported by Microsoft who, under an agreement with Novell, has made additional specifications, access to the Silverlight Base Class Library APIs, binary codecs and test cases available to the Mono team, none of which are available to other members of the public.

The "covenant" under which Novell has been granted this exclusive access also specifies conditions that are incompatible with the licensing that covers most free and open source software. As examples, it specifically requires that the software must have been "obtained directly from Novell or through an Intermediate Recipient" and that it must be "not licensed under GPLv3 or a Similar License". Some free software proponents have criticized the covenant.

Silverlight has received criticism for not living up to its cross-platform operating system compatibility promises, especially on Linux systems compared to its extensive support on Apple and Microsoft desktops for Internet Explorer, Firefox, and Chrome. Even though Microsoft was officially collaborating on the Moonlight project, Bruce Chizen, who was CEO of Adobe Systems at the time, which sells the competing proprietary Flash platform, questioned "the commitment of Microsoft to keep the Silverlight platform compatible with other OS besides Windows". His concerns are based on "examples from history" where, he argues, Microsoft has launched products with promises of ongoing cross-platform compatibility that no longer apply, for example Internet Explorer for UNIX and Windows Media Player for Mac.

Relationship to existing web standards
California and several other U.S. states also have asked a district judge to extend most of Microsoft's antitrust case settlement for another five years, citing "a number of concerns, including the fear that Microsoft could use the next version of Windows to 'tilt the playing field' toward Silverlight, its new Adobe Flash competitor," says a Seattle Post-Intelligencer article. The final judgment on the motion extended the settlement two years, to November 2009, but for reasons unrelated to Silverlight. In Windows 7 the Silverlight web browser plug-in is not installed automatically, but is a downloadable optional update through Windows Update.

Microsoft has been criticized for not using the Scalable Vector Graphics (SVG) standard for Silverlight, which, according to Ryan Paul, editor of Open Ended, Ars Technica's open source software journal, is consistent with Microsoft's way of ignoring open standards in other products, as well. However, according to David Betz, a .NET specialist and Microsoft Most Valuable Professional (MVP), Microsoft would have had to alter the SVG specification in order to integrate it with .NET, so that "by choosing to use XAML over SVG, Microsoft kept SVG pure by not add proprietary technology to it."

History

 * Silverlight 1 – Silverlight 1, developed under the codename Windows Presentation Foundation/Everywhere (WPF/E) was released in 2007. It consisted of the core presentation framework, which is responsible for the user interface (UI), interactivity and user input, basic UI controls, graphics and animation, media playback, Digital rights management (DRM), and DOM integration.


 * Silverlight 2 – Included a version of the .NET Framework, implemented the same full Common Language Runtime (CLR) version as .NET Framework 3.0; so it can execute programs written in any .NET language.


 * Silverlight 3 – Silverlight 3 was announced on September 12, 2008, and 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 included more controls —including but not limited to DataGrid, TreeView, various layout panels, DataForm for forms-driven applications and DataPager for viewing paginated data.


 * Silverlight 4 – 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; Printing; More mouse support; New notification support to send messages to users; New and enhanced controls (e.g., RichTextBox, DataGrid); Theming of controls; rendering HTML; better localization, and others.


 * Silverlight 5 – The official release was made available to download officially on December 9, 2011. New features include: GPU accelerated video decoding, 3D graphics, playback speed controls, remote control and 64-bit support.