Moonlight (runtime)

Last updated
Moonlight
Original author(s) Novell
Developer(s) Xamarin
Initial releaseMarch 4, 2009;14 years ago (2009-03-04)
Stable release
3.99.0.3 [1] / 27 April 2011
Preview release
4.0 Preview 1 [2] / 15 February 2011
Repository
Written in C, C++, C#
Operating system Linux
Type Web Application framework
License LGPL 2 with proprietary codecs
Website

Moonlight is a discontinued free and open source implementation for Linux and other Unix-based operating systems of the Microsoft Silverlight application framework, developed and then abandoned by the Mono Project. [3] [4] Like Silverlight, Moonlight was a web application framework which provided capabilities similar to those of Adobe Flash, integrating multimedia, graphics, animations and interactivity into a single runtime environment.

Contents

History and overview

Release History
DateVersion
2009-02-11Moonlight 1.0 [5]
2009-12-17Moonlight 2.0 [6]
2010-02-03Moonlight 3.0 Preview 1 [7]
2011-02-15Moonlight 4 Preview 1 [8]

In an interview in the beginning of June 2007, Miguel de Icaza said the Mono team expected to offer a "feasibility 'alpha' demo" in mid-June 2007, with support for Mozilla Firefox on Linux by the end of the year. [9]

After a 21-day hacking spree by the Mono team (including Chris Toshok, Larry Ewing and Jeffrey Stedfast among others), a public demo was shown at Microsoft ReMIX conference in Paris, France on June 21, 2007. [10] [11] [12] [13]

However, in September 2007, developers still needed to install and compile a lot of Mono and Olive (the experimental Mono subproject for .NET 3.0 support) modules from the Mono SVN repository to be able to test Moonlight. [14] A Moonlight IDE, named Lunar Eclipse, exists in SVN for XAML designs. Moonlight uses Cairo for rendering. [15]

Moonlight was provided as a plugin for Firefox and Chrome on popular Linux distributions. [16] The plugin itself does not include a media codec pack, but when the Moonlight plugin detects playable media it refers users to download a free Media codec pack from Microsoft.

Moonlight 2.0 tracked the Silverlight 2.0 implementation. The first completed version, Moonlight 1.0, supporting Silverlight 1.0, was released in January 2009. Moonlight 2.0 was released in December 2009. [17] The Moonlight 2.0 release also contained some features of Silverlight 3 including a pluggable media framework which allowed Moonlight to work with pluggable open codecs, such as Theora and Dirac. [18]

Preview releases of Moonlight 4.0, targeting Silverlight 4 compatibility, were released in early 2011. [19]

In April 2011, the Moonlight team demonstrated Moonlight running on Android tablets and phones at the MIX11 Web Developers conference in Las Vegas. [20]

Shortly after the April 2011 release, Attachmate, parent to developer Mono, laid off an undisclosed number of Mono employees, [21] and announced a deal with startup Xamarin for Mono development and support. [22] At that time, Xamarin CEO Nat Friedman affirmed their commitment to the Moonlight project, although there were no outward signs of any further development afterward.

In December 2011, de Icaza announced that work on Moonlight had stopped with no future plans. He explained that Microsoft had "cut the air supply" to it by omitting cross-platform components, making it a web-only plugin, and including Windows-only features. He advised developers to separate user interface code from the rest of their application development to ensure "a great UI experience on every platform (Mac, Linux, Android, iOS, Windows and Web)" without being dependent on third party APIs. [23]

DRM

Silverlight supports Digital Rights Management in its multimedia stack, but Microsoft will not license their PlayReady DRM software for the Moonlight project to use and so Moonlight is unable to play encrypted content. [24]

Desktop support

Moonlight was also usable outside of the browser as a Gtk+ widget (known as Moonlight.Gtk). A number of Desklets were written using this new technology during the Novell Hack Week in 2007. [25]

MoonBase is an experimental set of helper classes built on top of Moonlight.Gtk that can be used to create full blown C# desktop applications using the Moonlight (Silverlight 4.0) widgets and XAML files. [26] MoonBase also has a related XAML editor/previewer. [27]

Microsoft support

Shortly after the first demo at MIX 07 in Paris, Microsoft began cooperating with Novell to help with the building of Moonlight. [28] Support included giving exclusive access to Novell for the following Silverlight artifacts: [29]

Microsoft released two public covenants not to sue for the infringement of its patents when using Moonlight. The first one covered Moonlight 1 and 2, is quite restrictive and covered only the use of Moonlight as a plugin in a browser, only implementations that are not GPLv3 licensed, and only if the Moonlight implementation has been obtained from Novell. It also notes that Microsoft may rescind these usage rights. [30]

The second covenant was an updated and broader covenant that no longer limits the covenant to users that obtain Moonlight from Novell, it covers any uses of Moonlight regardless of where it was obtained. The updated covenant covers the implementations as shipped by Novell for versions 3 and 4, it no longer distinguishes Novell from other distributions of Moonlight and expands the covenant to desktop applications created with Moonlight. The covenant does not extend to forks licensed under the GNU GPL (Moonlight itself uses the Lesser GPLv2). [31]

Codecs integration

Although Moonlight is free software, the final version was going to use binary-only audio and video codecs provided by Microsoft which will be licensed for use with Moonlight only when used as a browser plugin (see above). The Windows media pack is not distributed together with the Moonlight plugin but the first time when media content in Silverlight is detected the user will be prompted to download the pack containing the codecs used in Silverlight directly from Microsoft.

Self built versions could still use the FFmpeg library and there was discussion about adding GStreamer support as an alternative to using Microsoft's binary codecs for those who wish to use GStreamer instead and also for use when used outside of a browser.

Mono architect Miguel de Icaza blogged that the Mono team prototyped Moonlight multimedia support using the LGPL-licensed FFmpeg engine but that they were unable to redistribute packaged versions that used that library due to FFmpeg codec licensing issues inside of the United States. [29] [32]

Moonlight in other distributions

After the release of Moonlight 2, a covenant provided by Microsoft was updated to ensure that other third party distributors can distribute Moonlight without their users having to worry about getting sued over patent infringement by Microsoft. [33] This covenant can be found on the Microsoft website.

Kevin Kofler and Tom Callaway, of Fedora, have stated publicly that the last covenant was "not acceptable" for that distribution and that "it is still not permissible in Fedora". [34]

The version of Moonlight that was going to be available direct from Novell would have access to licensed closed source media codecs provided free of charge by Microsoft. Third-party distributions of Moonlight would only be able to play non-patent encumbered media like Vorbis, Theora and Ogg. To support other formats, the distributors would have had to choose from a few licensing options:

At the PDC conference on October 13, 2008, Microsoft placed the 'Silverlight XAML Vocabulary' under the Microsoft Open Specification Promise, [35] stating in a press release, "The Silverlight XAML vocabulary specification, released under the Microsoft Open Specification Promise, will better enable third-party ISVs to create products that can read and write XAML for Silverlight." Since Moonlight is essentially a XAML reader, Debian's position is that Moonlight is safe for them to redistribute (leaving each user to agree to their own licensing for Microsoft's and others' binary codecs). [36]

See also

Related Research Articles

<span class="mw-page-title-main">Miguel de Icaza</span> Mexican free software developer

Miguel de Icaza is a Mexican programmer, best known for starting the GNOME, Mono, and Xamarin projects.

Ximian, Inc. was an American company that developed, sold and supported application software for Linux and Unix based on the GNOME platform. It was founded by Miguel de Icaza and Nat Friedman in 1999 and was bought by Novell in 2003. Novell continued to develop Ximian's original products, while adding support for its own GroupWise and ZENworks software.

<span class="mw-page-title-main">Nat Friedman</span> American Investor

Nathaniel Dourif Friedman is an American technology executive and investor. He was the chief executive officer (CEO) of GitHub, and former Chairman of the GNOME Foundation. Friedman is currently a board member at the Arc Institute, and an advisor of Midjourney.

Theora is a free lossy video compression format. It was developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg container.

Monkey's Audio is an algorithm and file format for lossless audio data compression. Lossless data compression does not discard data during the process of encoding, unlike lossy compression methods such as Advanced Audio Coding, MP3, Vorbis, and Opus. Therefore, it may be decompressed to a file that is identical to the source material.

Extensible Application Markup Language is a declarative XML-based language developed by Microsoft for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.

<span class="mw-page-title-main">Windows Forms</span> Graphical user interface software library

Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono, providing a platform to write client applications for desktop, laptop, and tablet PCs. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm and only acts as a platform for the user interface tier in a multi-tier solution.

<span class="mw-page-title-main">Graphical user interface builder</span> Software development tool

A graphical user interface builder, also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements using a drag-and-drop WYSIWYG editor. Without a GUI builder, a GUI must be built by manually specifying each widget's parameters in the source code, with no visual feedback until the program is run. Such tools are usually called the term RAD IDE.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

FAAC or Freeware Advanced Audio Coder is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types, file formats, multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. It also supports Digital Radio Mondiale.

<span class="mw-page-title-main">Gnash (software)</span> Media player for playing SWF files

Gnash is a media player for playing SWF files. Gnash is available both as a standalone player for desktop computers and embedded devices, as well as a plugin for the browsers still supporting NPAPI. It is part of the GNU Project and is a free and open-source alternative to Adobe Flash Player. It was developed from the gameswf project.

Microsoft UI Automation (UIA) is an application programming interface (API) that allows one to access, identify, and manipulate the user interface (UI) elements of another application.

<span class="mw-page-title-main">Microsoft Silverlight</span> Application framework for writing and running rich Internet applications

Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. A plugin for Silverlight is still available for a very small number of browsers. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.

Comparison of the Java and .NET platforms.

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET Framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.

<span class="mw-page-title-main">MonoDevelop</span> Integrated development environment, discontinued for macOS

MonoDevelop was an open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI) and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript and Visual Basic.NET. Although there is no word from the developers that is has been discontinued, nonetheless it hasn't been updated in 4 years and is no longer installable on major operating systems, such as Ubuntu 22.04 and above. Its parent Microsoft, seems to have shifted focus to Visual Studio Code and the .NET Framework, which runs on many operating systems, including Linux.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

The HTML5 specification introduced the video element for the purpose of playing videos, partially replacing the object element. HTML5 video is intended by its creators to become the new standard way to show video on the web, instead of the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML5 video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

<span class="mw-page-title-main">Xamarin</span> American software company

Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android and Xamarin.iOS, which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

References

  1. "moon/3.99.0.3".
  2. "Moonlight 4 Preview 1 is out".
  3. Miguel de Icaza (May 29, 2012). "Miguel de Icaza on ASP.NET MVC, Moonlight, and the Android Lawsuit". InfoQ.com. Retrieved 2014-02-06.
  4. Foley, Mary-Jo. "Xamarin abandons its Silverlight for Linux technology". All About Microsoft. ZDNet. Retrieved 1 June 2012.
  5. "Moonlight 1.0 goes live - Miguel de Icaza".
  6. "Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 - Miguel de Icaza".
  7. "Moonlight 3.0 Preview 1 - Miguel de Icaza".
  8. "Moonlight 4 Preview 1 is out - Miguel de Icaza".
  9. Dana Gardner. "the FASTforward blog: Expect a June demo of Silverlight on Linux, sans browser". Archived from the original on 2007-09-28. Retrieved 2007-06-06.
  10. "Implementing Silverlight in 21 Days". Miguel de Icaza. Retrieved 2007-06-22.
  11. "Implementing Silverlight in 21 Days". Jeffrey Stedfast. 21 June 2007. Retrieved 2007-06-21.
  12. "Moonlight". Chris Toshok. Archived from the original on 2007-11-14. Retrieved 2007-06-21.
  13. "Mono Silverlight implementation emerges after epic hackathon". Ars Technica. 22 June 2007. Retrieved 2007-06-22.
  14. "Moonlight: Getting started". Mono Team. Retrieved 2007-09-02.
  15. Moonlight Notes
  16. "Moonlight Supported Platforms". mono-project.com. Retrieved 2009-05-17.
  17. "Moonlight 2 is now available". The Silverlight Team blog. 2009-12-17. Archived from the original on 2012-08-23. Retrieved 2009-12-19.
  18. "First Moonlight 2.0 Preview is Out". Miguel de Icaza. Retrieved 2009-05-04. We have developed a handful of open source codecs for Dirac, Vorbis and ADPCM that can be used with Silverlight 3/Moonlight Preview based on existing C# and Java implementations. Hopefully someone will help us fill in the blanks with more codecs (like Theora).
  19. "Moonlight 4 Preview Now Available". The Silverlight Team Blog. 2011-02-15.
  20. "Moonlight on Android". A Moment of Zen. 2011-04-15.
  21. "Attachmate lays off Mono employees". 2011-05-03.
  22. "SUSE Joins Xamarin for Mono". 2011-08-10.
  23. "Moonlight Mailing List". Xamarin. 2011.
  24. "Discussion on official Silverlight forum".
  25. "Moonlight Desklets demo on YouTube". Mono Team. Retrieved 2007-06-25.
  26. MoonBase
  27. XamlPreviewer
  28. Foley, Mary Jo (2007-09-25). "Microsoft officially 'extends support' for Novell's Silverlight Linux port". zdnet.com. Retrieved 2007-10-13.
  29. 1 2 de Icaza, Miguel (2007-09-05). "Microsoft/Novell Collaboration on Silverlight" . Retrieved 2007-10-13.
  30. "Covenant to Downstream Recipients of Moonlight - Microsoft & Novell Interoperability Collaboration". Microsoft. 2007-09-28. Retrieved 2008-03-08. "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.
  31. "Covenant to End Users of Moonlight 3 and 4". Microsoft . Retrieved 2010-05-11.
  32. Ramji, Sam (2007-09-05). "The Novell-Microsoft Wheeler Dealers Speak". Archived from the original on 2012-05-27. Retrieved 2007-10-13. After a great deal of work between the Moonlight and .NET teams, we're ready to formally announce that we (Microsoft and Novell) will be bringing Silverlight to Linux (Sam Ramji is Director of Microsoft's Open Source Software Lab)
  33. 1 2 Miguel de Icaza (2009-12-17). "Releasing Moonlight 2, Roadmap to Moonlight 3 and 4" . Retrieved 2009-12-18.
  34. Tom Callaway (December 23, 2009). "Re: New covenant published". gmane.linux.redhat.fedora.devel. Archived from the original on May 6, 2017. Retrieved 2010-01-11.
  35. "Microsoft Releases Silverlight 2, Already Reaching One in Four Consumers Worldwide". Microsoft. 2008-10-13. Retrieved 2008-10-13.
  36. "Moonlight for Debian". Debian Wiki. Retrieved 28 April 2017. Moonlight 1.0 is essentially a XAML renderer with codec support. All plugin logic is handled by the browser's Javascript engine. XAML is covered by an irrevocable patent grant from Microsoft, as shown here.{{cite web}}: External link in |quote= (help)