Friday, September 24, 2021

Mono Moonlight – Shedding Light Without Generating Heat

Novell’s Mono project has been a lightning rod for comment
and criticism, along with the company in general, primarily due to the
Microsoft / Novell patent agreement. While the ideas behind Mono were noble in
purpose, the association with Microsoft makes it a non-starter for a fairly
substantial number of open source developers. But that doesn’t change the fact
that corporate America has a substantial investment in custom software
developed using Microsoft development tools. (See this
article
for more information on the Mono project)

Microsoft announced Silverlight in May of 2007 at their MIX
conference held in Las Vegas. The first Community Technology Preview (CTP) was
released a few months after that. The design goal behind Silverlight was to
make it possible to build applications for the Web that used essentially the
same code as you would use for a desktop application. From an implementation
perspective that translates to a version of Microsoft’s Common Language Runtime
(CLR) running inside the browser. The actual name is the Dynamic Language
Runtime (DLR) with initial browser targets including Internet Explorer on
Windows and Firefox and Safari on both Windows and Mac OS X.

Linux is obviously missing in the list of supported
platforms–at least it was in the beginning. That’s where Moonlight comes in. The need
for Moonlight might be questioned by many Linux purists, but the fact remains
that there will be websites developed using Silverlight, and unless there is an
equivalent on the Linux desktop you won’t be able to view that content. Miguel de Icaza explains:

“From my perspective, it is crucial for Linux to have good support for Silverlight because I do not want Linux on the desktop to become a second class citizen ever again.”

Understanding what Silverlight / Moonlight brings to the
table is a good starting point for making a rational assessment as to its
value. From the Moonlight website the stated goals of the project are:

  • To run
    Silverlight applications on Linux.
  • To
    provide a Linux SDK to build Silverlight applications.
  • To
    reuse the Silverlight engine we have built for desktop applications.
  • Silverlight 1.0 has a number of basic capabilities focused
    around multimedia and Rich Internet Applications (RIAs). Scott Guthrie has a
    good blog
    post
    that describes what Silverlight 1.0 entails. Version 1.0 is somewhat
    limited since it does not include support for the .Net framework.’ To get that
    you’ll need Silverlight 1.1. Moonlight 0.8 does provide some support for
    Silverlight 1.1, but it’s still a work in progress.

    With Silverlight 1.1 Microsoft delivered support for Visual
    Basic .Net and C#. It also provides support for using the Windows Presentation
    Foundation (WPF) programming model. WPF uses XAML (eXtensible Application
    Markup Language) to describe the user interface elements and a .Net language to
    implement the logic to respond to user actions.

    Microsoft is currently in the final stages of the beta cycle
    for Silverlight 2.0. At the same time Novell is finishing up their beta of Mono
    2.0. Once Microsoft releases Silverlight 2.0 the Novell folks will have a firm
    target to shoot at.

    Two releases of Moonlight are available on the go-mono website. The first (0.8)
    supports Silverlight 1.0 and some 1.1 features. The second is an experimental
    version aimed at Silverlight 2.0. All you have to do to try it out is click on
    the download button to load the extension in Firefox. The next thing you’ll
    want to do is visit some of the Silverlight demo sites to see what types of
    content you can create. There’s a good list on the Mono Moonlight page under
    testing.

    The biggest emphasis to this point has been on making it
    possible to view Silverlight content on Linux. Developing for Silverlight /
    Moonlight has not been very high on the priority list. Microsoft’s tool
    offerings include Visual Studio for code development and debugging and
    Expression Blend for creating the user interface. This is a new programming
    paradigm for many old-school developers and requires a different way of
    thinking.

    Monodevelop
    is the Mono project’s answer to Microsoft’s Visual Studio. While it’s nowhere
    near the level of sophistication of the latest release of Visual Studio it does
    provide a reasonable alternative for building C# applications on Linux. The
    current release version does have some support for Moonlight at a very high
    level. Monodevelop 2.0 is in an early alpha release state and will include
    support for Mono 2.0 when it is released.

    Where’s it Going?

    Now that they’ve proved it can be done there’s really no
    reason not to continue following Microsoft’s path with new Moonlight releases.
    In reality it means that support on Linux will always lag behind Windows for
    some time to come. Hopefully the Microsoft / Novell working relationship will
    reduce that lag to some tolerable amount.

    In the final analysis there is really nothing to be gained
    if you have no interest in viewing sites built with Microsoft Silverlight. The
    number of sites is somewhat limited at this time and those commercial (read
    non-Microsoft) sites that do use Silverlight typically have an alternative site
    if you don’t have it installed. For those that have an interest it’s a
    relatively painless process to load the Firefox Moonlight plugin and give it a
    try. Go ahead, you know you want to.

    This article was first published on LinuxPlanet.com.

    Similar articles

    Latest Articles