Microsoft Silverlight

Microsoft Silverlight
Developer(s) Microsoft Corporation
Initial release September 5, 2007
Stable release 5.1.31211.0[1] (December 12, 2014) [±]
Preview release None [±]
Operating system Microsoft Windows, OS X, and Symbian OS[2][3]
Platform Intel x86 32-bit, x86-64, ARM and S60
Type Application framework, run-time environment and multimedia framework
License Freeware
Website www.microsoft.com/silverlight/

Microsoft Silverlight is an application framework for writing and running rich Internet applications, similar to Adobe Flash. A plugin for Silverlight is available for many web browsers. 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 that 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.[4]

Over the course of about five years Microsoft released five versions: The first version was released in 2007; and the fifth (and final) major version 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,[5] with Firefox and Safari under Mac and OS X, and with mobile devices using the Windows Mobile[6] and Symbian (Series 60)[7] platforms.

In 2013, Microsoft announced that they had ceased development of Silverlight except for patches and bugfixes. Microsoft announced the end of life of Silverlight 5 in 2012. Silverlight is no longer supported in Chrome on OS X, while support for Silverlight in Chrome on all other operating systems will be disabled by default in April 2015 and removed completely in September 2015.[8] Microsoft has set the support end date for Silverlight 5 to be October 2021.[9]

Silverlight was used to provide video streaming for the NBC coverage of the 2008 Summer Olympics in Beijing,[10] the 2010 Winter Olympics in Vancouver,[11] and the 2008 conventions for both major United States political parties.[12] Silverlight is also used by Netflix for its instant video streaming service,[13] but Netflix said in its Tech Blog in 2013 that, since Microsoft announced the end of life, they were moving to HTML5 video.[14]

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.[15]

Silverlight supports H.264 video, Advanced Audio Coding, Windows Media Video (WMV), Windows Media Audio (WMA) and MPEG Layer III (MP3) media content[16] 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".[17] Silverlight, since version 3, supports the playback of H.264 video.[18] 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.[19] 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.[20]

A free software implementation (now abandoned[21]) 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 did not include it, citing redistribution and patent concerns.[22] However, in May 2012, Moonlight was abandoned because of its lack of popularity.[23]

Adoption

According to statowl.com, Microsoft Silverlight had a penetration of 64.16% on May 2011. Usage on July 2010 was 53.54%, whereas as of May 2011 market leader Adobe Flash was installed on 95.26% of browsers, and Java was supported on 76.51% of browsers.[24] 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, as of 26 August 2011, fewer than 0.3% sites used Silverlight and Java,[25] 27% used Adobe Flash,[26] although another source cites around 4% for Java.[27]

Supported platforms

Desktop computers

Silverlight requires an x86 processor with Streaming SIMD Extensions (SSE) support. Supported processors include the Intel Pentium III and up, the AMD Athlon XP and up, and newer AMD Durons.

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

Supported Silverlight versions by desktop platform[28][29]
OS/browser Internet Explorer 6 SP1 or later Internet Explorer 7 Internet Explorer 8 or later Mozilla Firefox 3 or later Safari Google Chrome
Windows 8 and 8.1 N/A N/A 5 (8 uses IE10, 8.1 uses IE11) 5 (Firefox 12+) N/A Dropped since Chrome 42[30]
Windows 7 or later
Windows Server 2008 R2 or later
N/A N/A 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2 Dropped since Chrome 42
Windows Vista
Windows Server 2008
N/A 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2 Dropped since Chrome 42
Windows XP
Windows Server 2003
1, 2, 3, 4 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2 Dropped since Chrome 42
Windows 2000 (KB891861 required) 2, 3, 4 N/A N/A N/A 2 N/A
Mac OS X (Intel) N/A N/A N/A 1, 2, 3, 4, 5 1, 2, 3, 4, 5 Dropped since Chrome 39

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.[31] As of January 2015, however, Silverlight still does not officially support Opera. Silverlight 1.0 could be made to work with Opera via a hack.[32] Starting from Silverlight 2, hacks were no longer required.[33]

On Linux and FreeBSD, the functionality is available via Moonlight.[34][35] Moonlight is available for the major Linux distributions, with support for Firefox, Konqueror, and Opera browsers, provided it was obtained through Novell.[36] 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.[37] Availability of Moonlight version 1.0 for FreeBSD was announced in March 2009,[38] but has since been reported not to actually work.[39] As of 2011, 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.
As of 2013, Pipelight is available. It is a plugin for Linux browsers which, when combined with Wine, enables Windows browser plugins, including Silverlight, to run.[40]

Mobile devices

As of 2015, Silverlight was not available on Android or iOS, the most prevalent operating systems on the mobile market.

Silverlight was 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.[41] Nokia announced plans to make Silverlight for Mobile available for S60 on Symbian OS, as well as for Series 40 devices and Nokia internet tablets[42][43] (while it later sold the business to Microsoft and now sells Android tablets and will sell Alcatel-Lucent branded smartphones). Silverlight for Mobile supports Silverlight 2 content and .NET languages.[6] Silverlight for Windows Phone 7.5 is based on Silverlight 4.[44]

Development tools

A Silverlight application being edited in Microsoft Visual Studio.

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.[45]

A Silverlight control is a ZIP bnj 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:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
  <param name="source" value="MySilverLightControl.xap"/>
</object>

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.[46]

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

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,[48] 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.[49] 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.[50]

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.[51] Both Microsoft Silverlight and Adobe Flash are proprietary.[52] Flash's file formats are publicly documented standards,[53][54] as are Silverlight's.[55][56] 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

Main article: Moonlight (runtime)

The Mono Team abandoned development of Moonlight, a free and open-source implementation of both the Silverlight 1 and 2 runtimes.[57] Development was discontinued in 2012 due to the poor acceptance of Silverlight and the restrictions imposed by Microsoft.[58]

The project had been officially supported by Microsoft which,[34] under an agreement with Novell, made not-publicly-available additional specifications, access to the Silverlight Base Class Library APIs, binary codecs and test cases available to the Mono team.[35][59]

The "covenant" under which Novell was granted this exclusive access also specified conditions incompatible with the licensing that covers most free and open source software. As examples, it specifically required 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".[36] Some free software proponents criticized the covenant.[60]

Silverlight was criticised 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. Although Microsoft was officially collaborating on the Moonlight project, Bruce Chizen, CEO of Adobe Systems, which sells the competing proprietary Flash platform, questioned "the commitment of Microsoft to keep the Silverlight platform compatible with other OS besides Windows".[61] His concerns are based on "examples from history" where he said that Microsoft had 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

In 2007, California and several other U.S. states asked a district judge to extend most of Microsoft’s antitrust case settlement for another five years,[62] 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.[63] In Windows 7 the Silverlight web browser plug-in is not installed automatically, but is a downloadable optional update through Windows Update.[64]

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.[65] 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[ing] proprietary technology to it.”[66]

History

References

  1. "December 2014 update for Microsoft Silverlight 5". Microsoft Corporation. Retrieved December 13, 2014.
  2. "Frequently Asked Questions § System requirements". Microsoft Silverlight product page. Microsoft Corporation. Retrieved November 4, 2010.
  3. Perez, Sarah (March 22, 2010). "Silverlight for Symbian Plugin Now Available". Cool Stuff – A Channel 9 Blog. Microsoft Corporation. Retrieved November 4, 2010.
  4. internet explorer – Can I browse Silverlight sites on Windows Phone 7? – Windows Phone Beta – Stack Exchange
  5. Microsoft: Silverlight 5 System Requirements - Compatible Operating systems and browsers
  6. 6.0 6.1 "FAQ: Silverlight for mobile". Silverlight.net. Archived from the original on June 29, 2009. Retrieved March 9, 2008.
  7. "Announcing Silverlight for Symbian - RTM - Silverlight for Symbian Team Blog - Site Home - MSDN Blogs". Blogs.msdn.com. 2010-07-06. Retrieved 2013-06-15.
  8. "The Final Countdown for NPAPI".
  9. "Microsoft Support Lifecycle". Microsoft. Retrieved March 19, 2015.
  10. "Microsoft Silverlight Gets a High Profile Win: 2008 Beijing Olympics". Retrieved February 23, 2010.
  11. "Microsoft Wins The 2010 Olympics For Silverlight". Retrieved February 23, 2010.
  12. "Microsoft Working to Make Political Conventions Unconventional". Retrieved February 23, 2010.
  13. "Netflix Begins Roll-Out of 2nd Generation Media Player for Instant Streaming on Windows PCs and Intel Macs". Retrieved February 23, 2010.
  14. "HTML5 Video at Netflix". Retrieved April 15, 2013.
  15. Sterling, Charles. "Writing a Windows Sidebar Gadget in Silverlight dead simple". MSDN Blogs. Retrieved March 9, 2008.
  16. "Silverlight FAQs". Retrieved October 6, 2012.
  17. "windows phone software".
  18. "Discussed on Microsoft's web site in Q&A with Scott Guthrie".
  19. "Using a Downloader Object". Retrieved May 25, 2007.
  20. "Mono developers to bring Silverlight to Linux". May 7, 2007.
  21. http://www.zdnet.com/article/xamarin-abandons-its-silverlight-for-linux-technology/
  22. "Forbidden items — FedoraProject".
  23. Miguel de Icaza on ASP.NET MVC, Moonlight, and the Android Lawsuit
  24. "Rich Internet Application Market Share" (FLASH PLAYER.). StatOwl.com. Retrieved July 24, 2011.
  25. "Usage of Silverlight for websites". W3Techs Technology Surveys. Q-Success. Retrieved August 26, 2011.
  26. "Usage of Flash for websites". W3Techs Technology Surveys. Q-Success. Retrieved July 24, 2011.
  27. "Usage statistics and market share of Java for websites". W3Techs Technology Surveys. Q-Success. Retrieved July 24, 2011.
  28. "Get Silverlight | Microsoft Silverlight". Microsoft.com. Retrieved 2013-06-15.
  29. http://www.microsoft.com/getsilverlight/locale/en-us/html/installation-win-SL4.html
  30. https://sites.google.com/a/chromium.org/dev/developers/npapi-deprecation?pli=1
  31. Opera Watch: More details on Silverlight support in Opera, 3 May 2007 at the Wayback Machine (archived July 21, 2011)
  32. "Silverlight in Opera". Retrieved March 10, 2008.
  33. "Run Silverlight in Opera". Retrieved May 12, 2009.
  34. 34.0 34.1 "Silverlight 1.0 Released and Silverlight for Linux Announced". Retrieved September 5, 2007.
  35. 35.0 35.1 "Microsoft/Novell Collaboration on Silverlight". Retrieved September 5, 2007.
  36. 36.0 36.1 "Covenant to Downstream Recipients of Moonlight – Microsoft & Novell Interoperability Collaboration". Microsoft. September 28, 2007. Retrieved March 8, 2008. “Downstream Recipient” means an entity or individual that uses for its intended purpose a Moonlight Implementation obtained directly from Novell or through an Intermediate Recipient… Microsoft reserves the right to update (including discontinue) the foregoing covenant… “Moonlight Implementation” means only those specific portions of Moonlight 1.0 or Moonlight 1.1 that run only as a plug-in to a browser on a Personal Computer and are not licensed under GPLv3 or a Similar License.
  37. "Microsoft/Novell Collaboration on Silverlight". Miguel de Icaza. September 5, 2007. Retrieved November 9, 2008. We will be supporting Firefox and Linux initially (that is our first goal) but we are looking forward to work with developers from other operating systems (BSD, Solaris) and other browsers (Konqueror, WebKit and Opera) to ensure that Moonlight works fine on their systems.
  38. "Moonlight 1.0 for FreeBSD availability announcement". March 5, 2009.
  39. "Installation and Maintenance of FreeBSD Ports or Packages".
  40. "Pipelight: using Silverlight in Linux browsers". FDS-Team. 2013-08-16. Retrieved 2013-08-29.
  41. Chapman, Stephen (December 1, 2009). "Windows Mobile 7: Silverlight Applications, IE Mobile 7, and More!".
  42. "Nokia to enable Silverlight". Blog.anta.net. March 4, 2008. ISSN 1797-1993. Retrieved March 4, 2008.
  43. "Windows Phone Silverlight Application Life Cycle". MSDN. Microsoft Corporation. November 19, 2010. Retrieved August 26, 2011. Version 1.0; Applies To: Windows® Phone 7
  44. "What's New in Silverlight for Windows Phone". MSDN. Microsoft Corporation. Retrieved August 26, 2011. Silverlight for Windows Phone OS 7.1 is based on Silverlight 4. That means if you create a new Silverlight for Windows Phone application that targets Windows Phone OS 7.1, you can take advantage of several new features.
  45. "Microsoft Silverlight Tools for Visual Studio". Retrieved January 22, 2009.
  46. Parker, Nigel. "MIX07 Your Product is a feature of the Web!". Retrieved June 8, 2007.
  47. "Eclipse for Silverlight". Retrieved October 14, 2008.
  48. Montalbano, Elizabeth. "Microsoft Goes Open Source?". Retrieved April 29, 2007.
  49. Clarke, Gavin. "Silverlight glow dimmed by cross-platform concerns". Retrieved May 5, 2007.
  50. "Sample Source Code for Silverlight 2 Runtime and SDK Controls".
  51. Markoff, John (August 11, 2008). "Microsoft leveraging Silverlight and riling critics". International Herald Tribune. Retrieved January 11, 2009. Others take a darker view of Microsoft's intentions and argue that Silverlight is simply a rehash of the company's 1990s-era "embrace and extend" strategy for pre-empting Web competition. "They're still playing the same games," said Michael Nelson, professor of internet studies at Georgetown University. "It's a way to lock up the content, and it's not enabling as much innovation as we would like to see."
  52. Meyer, David (April 30, 2008). "Mozilla warns of Flash and Silverlight 'agenda'". ZDNet. Retrieved January 11, 2009. Companies building websites should beware of proprietary rich-media technologies like Adobe's Flash and Microsoft's Silverlight, the founder of Mozilla Europe has warned.
  53. "Adobe SWF file format specification" (PDF). Retrieved December 11, 2011.
  54. "Adobe FLV file format specification" (PDF). Adobe Systems Inc. Retrieved December 11, 2011.
  55. "Microsoft Open Specification Promise". Retrieved December 11, 2011.
  56. "Microsoft ASF specification". Retrieved December 11, 2011.
  57. "Mono Moonlight". Mono Project. Retrieved June 22, 2008.
  58. Miguel de Icaza (May 29, 2012). "Moonlight development discontinued". InfoQ.com. Retrieved June 4, 2012.
  59. Miguel de Icaza (March 3, 2008). "Pre-Mix 08: Moonlight Updates". Retrieved March 8, 2008.
  60. Jones, Pamela (May 28, 2008). "Shining Some Light on Microsoft's Moonlight Covenant". Groklaw. Retrieved August 25, 2008. Moonlight is safe from threat only if you get it from Novell AND DO NOT PASS IT ON, as there are no protections for downstream recipients...Unless those downstream recipients get it from an 'Intermediate Recipient' defined to only include authorized resellers...It's like walking into a store and saying "I'm only going to pay half of the amount I owe and I hereby disclaim my duty to pay full price." You can try that, but the law supersedes whatever intent or desire you've expressed. At minimum, this shows how clearly they DO NOT want to coexist with GPL'd code.
  61. Chhabra, Gautam (April 20, 2007). "Adobe CEO questions Microsoft Silverlight cross-platform commitment". Java Entrepreneur. Retrieved December 6, 2007.
  62. Bishop, Todd (October 17, 2007). "Antitrust filing cites Microsoft Silverlight concern". Seattle Post-Intelligencer. Retrieved December 6, 2007.
  63. "Anitrust motion Executive Summary" (PDF). Retrieved September 7, 2008.
  64. Bugnion, Laurant (November 30, 2008). " "Silverlight on Windows Update (Windows 7)".
  65. Paul, Ryan. "Microsoft's Flash-killer Silverlight steals the show at MIX07". Retrieved May 6, 2007. [Microsoft's] perpetual unwillingness (or perhaps inability) to build on existing standards is deeply detrimental to users and developers. Internet Explorer 7 is still the only major web browser that has no native support for SVG. By neglecting to use the SVG standard in Silverlight and XAML in favor of a limited and incompatible facsimile, Microsoft has once again needlessly ignored what could have been an opportunity to empower developers and help Internet Explorer catch up with browsers that are more functional and standards-compliant.
  66. Betz, David. "Silverlight's Adoption as Public De-Facto Standard". Retrieved March 25, 2013. Silverlight can be viewed as a web extension of the Windows Presentation Foundation (WPF), a .NET 3.0 technology and not simply as a new web technology. As such, it makes sense that Silverlight uses XAML, not SVG. If Silverlight were based on SVG, then there would be a chasm between Silverlight and the .NET Framework, but as it stands Silverlight's use of XAML makes it part of the .NET family. In fact, it's important to note that elements in XAML usually represent objects in the .NET Framework; this would simply not be possible in SVG.
  67. Fried, Ina. "Microsoft hopes users see the (Silver) light". Retrieved June 18, 2013.
  68. Heuer, Tim. "A guide to Silverlight 3 new features". Retrieved March 23, 2009.
  69. "Silverlight 4 Beta What's New". Retrieved January 21, 2010.
  70. 70.0 70.1 "Silverlight 5 has released! The docs are up and a .chm is available". MSDN blogs. Microsoft Corporation. December 9, 2011. Retrieved December 11, 2011.

f

External links