Biz & IT —

Hands on: Moonlight 2 brings Silverlight 2, bits of 3, to Linux

Novell has released Moonlight 2. DLR.

Novell announced this week the official release of Moonlight 2, a new version of the company's open source implementation of Microsoft's Silverlight rich Internet application framework. Moonlight 2 is compatible with content that is designed for Silverlight 2, but it also includes support for a number of features from Silverlight 3.

Launched in 2007 by Novell's Mono team, the Moonlight project is developing a Firefox plugin for Linux that can render Silverlight media. Microsoft has endorsed the effort and supports it by supplying licensed codecs and test cases to help ensure that Moonlight properly conforms with the Silverlight specifications. The plugin is distributed as open source, except for the proprietary codecs which are obtained automatically by the plugin.

Moonlight 1.0, which was released earlier this year, delivered compatibility with Silverlight 1.0. The new release—which has been under development for roughly ten months—introduces a number of very significant features, including support for managed code and the Dynamic Language Runtime (DLR). The DLR, which Microsoft released under an open source license in 2007, makes it possible to use .NET variants of Python and Ruby in Silverlight and Moonlight.

Although a lot of existing Silverlight content requires version 3, much of it will still work with Moonlight 2. Several Silverlight 3 features are supported in the new version of the Moonlight plugin, including writeable bitmaps, some out-of-browser functionality, and the Silverlight 3 pluggable media pipeline. The developers are actively working to expand the capabilities of the plugin and provide better compatibility with Silverlight 3. According to lead Mono developer Miguel de Icaza, the Moonlight team is prioritizing popular content like the Winter Olympics and Microsoft's Photosynth. They aim to release Moonlight 3 in the third quarter of 2010.

I conducted extensive hands-on testing to evaluate the performance of Moonlight 2 and determine how well it handles Silverlight content. The plug-in has improved a lot since the prereleases that we tested in May and August, but it still needs some work. Much like Adobe's Flash plugin for Linux, Moonlight 2 is resource intensive and lacks stability. It's technical capabilities, however, are impressive. It was able to handle some relatively intensive Silverlight 3 content, such as MSN's tacky Virtual Twilight tour. It was also able to handle a nifty 3D model rendering example that was designed for Silverlight 2.

Novell's Moonlight plugin rendering a 3D monkey

Silverlight 2 support seems relatively solid, but obviously not all Silverlight 3 applications will work yet. When you attempt to run content that requires Silverlight 3, Moonlight will briefly display a warning message to inform you that not all features are guaranteed to work. It's not entirely clear how much Silverlight 3 content will work with the current version of Moonlight, but I was able to get some idea from my tests. Roughly a quarter of it worked reliably, but most only worked partially or didn't work at all.

In conjunction with the release of Moonlight 2.0, Microsoft has established a new patent covenant clarifying that it will not enforce its patent rights against users who obtain the plugin from third-party distributors. This is significant because it will broadly enable redistribution of Moonlight and allow Linux vendors to make the plugin available to end users through their own software package repositories. The licensed media codecs provided by Microsoft, however, are still only available to users who obtain the Moonlight plugin from Novell.

"Moonlight development is quickly following the innovation in Silverlight with each release," wrote Microsoft's Silverlight team in a blog entry. "In response to feedback from the community, Microsoft has also extended its Patent Covenant to End Users of Moonlight. The covenant is no longer limited to users that obtain Moonlight from Novell or its channel, but now covers users who obtain Moonlight from any third party, including other Linux distributors."

The Moonlight team is very enthusiastic about Microsoft's upcoming improvements to Silverlight, particularly the company's plans to turn it into a platform for cross-platform desktop application development. In recent blog posts, de Icaza discusses the potential opportunities that this could open up for next-generation desktop software.

"If our experience with the positive feedback that we have gotten from MonoDevelop is of any indication Silverlight 4 will enable a whole new class of cross-platform .NET application development to take place. Like nothing we have seen before," he wrote. "We are thrilled to be working with Microsoft to make sure that we can improve, fix and fine tune Moonlight to meet those requirements and to do so in a purely open source fashion."

The Moonlight 2.0 plugin for Firefox is available for download from the project's website.

Channel Ars Technica