A new version of the Moonlight open-source technology that puts Silverlight on Linux is now available for developers to test.
Silverlight is Microsoft's cross-platform runtime and development technology for running Web-based multimedia applications.
According to a blog post by Miguel de Icaza, Novell developer platform vice president and founder of the Mono open-source project, the preview of Moonlight 2.0 is not feature-complete and does not pass all the requirements needed to fully implement Silverlight on Linux.
What the Moonlight 2.0 preview does give developers is a glimpse of how they can leverage Silverlight 2.0 features on Linux, as well as features of the forthcoming 3.0 release now in beta, according to de Icaza.
Microsoft and Novell collaborated on Moonlight, which is part of the Mono project, a cross-platform, open-source development framework for Microsoft's proprietary .NET platform. Moonlight 1.0 was released in February.
The preview gives developers the ability to develop write applications entirely in Unix if they install Mono's 2.4 release and the full Moonlight software development kit, de Icaza said. It also reuses Microsoft's open-source Silverlight controls, called Microsoft MS-PL Controls, which give developers a short cut to create buttons, checkboxes, calendars, containers and even a full database-bound datagrid in Moonlight applications on Linux.
The Moonlight 2.0 release also supports a variety of programming languages such as IronRuby and IronPython, open-source implementations of Ruby and Python that Microsoft has created and which can be used in Silverlight, as well as Visual Basic or PHP.
Another feature Moonlight 2.0 includes is the Visual Basic Runtime, which Silverlight ships with, de Icaza said. The runtime in Moonlight is a tuned-up version of a VB runtime created by ISV Mainsoft a few years ago, he added.
De Icaza also outlined Moonlight 2.0's support of Adaptive Streaming, a feature in Silverlight that allows developers to create their own transports to fetch media, which does not limit them to using the HTTP.
"For instance, a developer could write a transport that fetches different bits of the media from different servers," he wrote, "or use bittorrent to fetch the media instead of depending on a single server."
Once Moonlight's developers were porting Silverlight 2.0's features to Linux, adding Silverlight 3.0 features to the Moonlight 2.0 preview was a natural evolution of that process, according to de Icaza.
"As we were implementing the 2.0 APIs a handful of features from 3.0 fit naturally into our design," he wrote. "So instead of going the extra mile to limit things in 2.0, we just expose the 3.0 APIs in a forward-compatible fashion."
The Moonlight 2.0 preview supports Silverlight 3.0's out-of-browser, WriteableBitmap class, 3.0 pluggable media pipeline and SaveDialog support features. However, the out-of-browser support is a manual process in the Moonlight 2.0 preview, whereas it is automated in Silverlight, according to de Icaza.
He added that the support for the pluggable media framework is especially interesting for developers because it means they can author their own codecs without waiting for Silverlight or Moonlight to add support for those codecs.
Information about Silverlight 3.0's features can be found online on Microsoft's Silverlight Web site.