Friday, May 08, 2009

Moonlight 2 preview shows promise, still needs work

The developers behind the Moonlight project, an open source implementation of Microsoft's Silverlight media framework, have released a preview of Moonlight 2.0. The new version of Moonlight introduces compatibility with critical Silverlight 2.0 features, such as widgets and support for managed code.

The Moonlight project was first launched in 2007 as an experimental project undertaken by Novell's Mono team. It later gained official backing from Microsoft. The Redmond giant agreed to contribute to the effort by supplying documentation, test cases, and fully licensed codecs so that Moonlight can deliver full Silverlight compatibility to Linux users.

Moonlight 1.0, which was released earlier this year, enabled Linux users to view the Obama administration's official inauguration ceremony video stream. It was also used to build Moonshine, a browser plugin that uses Moonlight to play conventional Windows media streaming video content at a variety of websites.

Moonlight 2.0 preview is available for download from the Mono project's website. It is distributed as a Firefox plugin and is supported on both 32-bit and 64-bit Linux distributions. The entire plugin is roughly 9MB and it bundles the Mono virtual machine and other necessary runtime components. It uses several pieces of Microsoft's Silverlight stack, such as the Dynamic Language Runtime and Microsoft's Silverlight controls, which Microsoft has made available under the open source MS-PL license.

The Moonlight plugin itself is entirely open source and freely redistributable. The only component of Moonlight that cannot be redistributed or included out of the box are the codecs. The plugin will obtain a binary codec pack automatically from Microsoft after prompting the user.

I tested the Moonlight 2.0 preview on Ubuntu 9.04 with Firefox 3.0.10. It was easy to install and it loaded as expected when it encountered Silverlight content. Although a significant amount of progress has been made in the effort to achieve Silverlight 2.0 compatibility, the plugin is still at a relatively early stage of development and will require more work before it's production-ready. At the present time, it only works with a fraction of existing Silverlight 2.0 content. For an example that works reasonably well, check out the Dr. Dobb's Challenge 2 demo.

According to the roadmap, the developers plan to launch an alpha release next month, a beta release this summer, and the final 2.0 release in September. After the 2.0 release, the focus will shift towards delivering Silverlight 3.0 compatibility. Some Silverlight 3.0 API features have already been implemented in Moonlight 2.0, such as the SaveDialog and WriteableBitmap class.

Silverlight 2.0 offers some compelling features, such as the ability to interact with the page DOM using dialects of Python and Ruby. The Moonlight 2.0 preview brings those features to Linux users. If the developers can deliver full compatibility by the end of the summer and can catch up to Microsoft, the Moonlight project will ensure that Linux users don't get locked out as more high-profile adopters use Silverlight to deploy content on the Web.