Moonlight: An Open Source Implementation of Silverlight

Feeling left out because Microsoft's new Silverlight doesn't work on your system? You're not the only one. If you're dying to try out the multimedia environment, but you have a Linux-based system, you'll want to check out Moonlight. Keep reading for the details.

Contributed by
Rating: 4 stars4 stars4 stars4 stars4 stars / 2
April 29, 2009
Rate this Article:
MEH MEH++


SEARCH ASP FREE
TOOLS YOU CAN USE

advertisement

In October of 2008, Microsoft released Silverlight, a free runtime that powers rich application experiences and delivers high quality, interactive video across multiple platforms and browsers using the .NET framework. Unlike Flash however, it's only available for Windows and Mac, not Linux. This is where our topic of discussion comes in: Moonlight. Moonlight is a project to create a Silverlight plug-in for the Mono environment, which will run on Linux, Mac and Windows. We’ll get to that in a moment though …

Essentially, Microsoft’s first version of Silverlight was intended to be the company’s answer to Adobe, Flash, and Flex and several other rich Internet application and AJAX frameworks. Originally, the program manipulated its multimedia-savvy, Windows Presentation Foundation user interface using JavaScript. Silverlight 1.1, which added support for compiled .Net languages and supported more of the .Net API, was only available as an alpha test at the time. Silverlight 3.0, aside from being more advanced than previous versions, now also enables mobile device support, starting with Windows Mobile 6 and Symbian.

 

Some of the dizzying array of features that Silverlight enables includes: animation, vector graphics, and the audio-video playback that characterize rich Internet applications. Now let’s face it: things move quickly in the digital age and no one understands that better than Microsoft. The tech giant realized that their Silverlight application, which had become wildly popular, needed a bit of a face lift to stay current in the increasingly competitive market it quickly found itself in.

So On March 18th of this year, Microsoft released a beta version of Silverlight 3.0. Unlike its predecessor, it’s  compatible with multiple web browser products used on Microsoft Windows and Mac OS X operation systems. Since then, some exciting news has developed, especially for those that had previously hoped to run Silverlight with Linux.

It goes without saying that Microsoft’s Silverlight is the most comprehensive offering for the rapid creation and delivery of sophisticated applications through a Web browser. Forged from technology used in over 100,000 companies and understood by over four million developers worldwide, Silverlight has the full support of Microsoft's tools, technologies, and thriving partner ecosystem -- though some had complaints concerning the program’s functionality. There is a new development afoot, and it’s one sure to please those who were unhappy with Silverlight’s inability to work with Linux. A third-party free software implementation named Moonlight is under development and it will finally bring compatible functionality to Linux.

What is Moonlight?

Moonlight is a free and open-source implementation of the Silverlight web application framework which was originally developed by Microsoft. Moonlight is currently being developed by the Mono Project , which is an open source development platform based on the .NET framework and allows developers to build Linux and cross-platform applications with improved developer productivity. Moonlight currently tracks the Silverlight 1.0 implementation. The first completed version of Moonlight 1.0, which supported Silverlight 1.0, was released on January 20, 2009.

 

The Mono team has made Moonlight 1.0 generally available for Linux distributions, including Fedora, OpenSUSE, Red Hat, SUSE Linux Enterprise and Ubuntu. Moonlight 1.0 is licensed under the GNU Library General Public License. Its final release was originally slated for August to coincide with the release of Silverlight 2.0. A preview version was released for streaming the U.S. Presidential inauguration.

Support for Silverlight 2.0 is still a work in progress, with an alpha version being planned for the very near future. Mono's Moonlight is currently provided as a Mozilla plugin, but the plugin itself does not include a media codec pack. When the Moonlight plugin detects playable media, it refers users to download a free Media codec pack from Microsoft.

Although Moonlight is free software, the final version will use binary-only audio and video codecs, which will be provided by Microsoft and licensed only for use with Moonlight. The Windows media pack is not -- and will not -- be distributed with the Moonlight plugin, but as soon as media content in Silverlight is detected, the user will be prompted to download the pack containing the codecs used in Silverlight directly from Microsoft.

Does Microsoft Support Moonlight?

So, we know that Moonlight supports Microsoft’s Silverlight, but does Microsoft approve of Moonlight? Interestingly enough, Microsoft does not directly support Moonlight, but it has nurtured its development by contributing its technical guidance to the project.

Novell, which is a technology giant that uses a unique combination of the best-engineered Linux and IT management software, will handle all Moonlight support requests. Microsoft has also supplied Novell with test suites for the Common Language Runtime, which is Microsoft’s implementation of the Common Language Infrastructure standard, in order to create Moonlight.

Considering all of the help Microsoft has lent Mono, one would think that the company fully supported Moonlight’s development, but Microsoft has yet to publicly make this claim. That being said, Scott Guthrie, corporate vice president of the .NET Developer Division at Microsoft, has been quoted as saying, “We have worked with the Moonlight team and Novell to enable interoperability between Windows and Linux platforms, and [to] extend the high-quality interactive Web and video experience for the benefit of the Linux community.”

Microsoft has also open-sourced high-level pieces of Silverlight 2 under the Microsoft Public License for Moonlight. It’s safe to say that without the handing over of these controls, it would have taken Mono years to catch up with Microsoft.

Let’s also not forget that Microsoft, as mentioned previously, has also granted the Mono team access to the Microsoft Media Pack, a set of licensed media codecs for video and audio. The codecs support decoding for Windows Media Video, Windows Media Audio and MP3 files. As an alternative, developers can compile FFmpeg codecs themselves. (FFmpeg is an open-source tool for audio and video conversion).

Often, celebrities will give a “non-denial” denial when posed with a personal question that has recently become public: Did you really hook up with (insert starlet’s name here)? Rather than saying no, the actor may say, “Why would I do that?” Well, it seems as if Microsoft is a bit too wary to jump into bed with Mono just yet; they’ll help by providing information, but the company has yet to fully -- and publicly -- support Moonlight. It’s the “non-support” support of the IT world.

Possible Moonlight Controversy

Although distributed under free and open source licenses, Moonlight was feared to be unsafe for downstream recipients to redistribute. This is a potential legal problem for Linux distributions wishing to distribute Moonlight. Microsoft makes it clear that anyone who distributes Moonlight is not protected by their Covenant to Downstream Recipients of Moonlight.

In not-so-simple-terms, Microsoft defines a “downstream recipient” as “an entity or individual that uses, for its intended purpose, a Moonlight Implementation obtained directly from Novell or through an Intermediate Recipient. An entity or individual is not a Downstream Recipient when such entity or individual resells, licenses, supplies, distributes, or otherwise makes available to third parties, the Moonlight Implementation. For avoidance of doubt, an entity or individual cannot qualify both as a Downstream Recipient and an Intermediate Recipient for use of the same copy of a Moonlight Implementation.”

At the Professional Developer’s Conference in 2008, Microsoft placed Silverlight under the OSP, which states "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." Because Mono’s Moonlight is essentially an XAML reader, Microsoft’s declaration suggests that Moonlight may be safe to redistribute (sans Microsoft's binary codecs).

The Future of Moonlight

Moonlight has obviously had an energetic beginning, but its makers claim that there’s no end in sight. Moonlight’s developers have always claimed to have three aims: to enable Silverlight applications to run on Linux, to create an SDK so that Silverlight applications can be developed on Linux alone, and to reuse the Moonlight engine to enable desktop applications.

Now that Moonlight has finally reached common ground with Silverlight 1.0, the Mono team is focused on delivering Moonlight 2. It’s probably no surprise that Moonlight 2.0 will be based almost entirely on Silverlight 2.0. As a matter of fact, the source code for an early build is already available on the project's website.

Microsoft has already helped Mono along quite a bit with their development of the first Moonlight, so it should come as no surprise that the developers working on new editions of the plugin are reporting that Microsoft is continuing to provide “support.” It would have been a very tough game playing catch-up with Windows, especially considering the fact that there isn’t a chance of Mono implementing the entirety of the Windows presentation subsystem. Moonlight developers indicate that the plugin’s development will continue on through Silverlight 3.0.

Microsoft’s Silverlight may claim to “light up the web,” but Moonlight’s future seems just as bright. The plugin offers a promising opportunity to create lightweight graphical applications on Linux. If that doesn't grab you on the desktop, stop and think about all the neat little devices that now have Linux embedded in them.

blog comments powered by Disqus
SILVERLIGHT ARTICLES

- With Silverlight Gone, Whither SharePoint?
- Silverlight in the News
- Silverlight Has a Bright Future
- Windows 8 Effects on .Net and Silverlight De...
- Microsoft`s SkyDrive Abandons Silverlight
- Silverlight Developers Unhappy with Windows ...
- Best Silverlight Examples
- How to install Silverlight for Windows Phone
- Microsoft Reveals Silverlight 5 Features
- Silverlight News: SRS and Microsoft to Bring...
- Silverlight 4.0: Paging Through Data using D...
- Silverlight 4.0: Navigating Data Using Domai...
- Silverlight 4.0: Filtering Data Using Domain...
- Silverlight 4.0: Sorting and Grouping Data w...
- Silverlight 4.0: Query Parameters of DomainD...

ASP Web Hosting ASP.Net Web Hosting Windows Web Hosting
ASP Free Forums 
 RSS  Tutorials RSS
 RSS  Forums RSS
 RSS  All Feeds
Site Map 
Request Media Kit
Write For Us Get Paid 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
Privacy Policy 
Support 


© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 6 - Follow our Sitemap
Most Popular Topics
All ASP.Net Tutorials