New Horizons for Mono, and for Silverlight

Xamarin, FTW

I’ve just returned from Atlanta, where Cameron and I attended a Microsoft Server and Tools reviewer workshop packed with cool product presentations, such as those for Microsoft’s Windows Azure cloud computing services, and for the LightSwitch non-developer development platform.

However, I found my my enthusiasm for Azure and for LightSwitch somewhat stunted upon finding that neither the Azure admin console nor the apps built with LightSwitch will work with my Ubuntu computers. Both products rely on Microsoft’s Silverlight, a rich Internet application framework that supports Windows, OS X on the desktop, with a mobile edition that works with Windows Phone 7 and Symbian OS.

Obviously, Microsoft gets to select which platforms to support, and Linux isn’t the most broadly-adopted client OS out there, but Silverlight’s most direct rival, Flash, works just fine with Linux, HTML works great. Hey, even Angry Birds now runs on Linux via HTML5, a trick that required Windows fakery via WINE until recently.

Now, there is a promising path to getting Silverlight working on my computer without resorting to any such fakery: Moonlight, part of the Mono project that provides an open source implementation of Microsoft’s .NET framework. For now, though, there are two roadblocks in this path:

Problem One: While Microsoft quite courteously forwards Linux-based browsers from its own Get Silverlight page to a Get Moonlight page with 32 and 64-bit Firefox and Chrome extensions for the plugin, Moonlight (as with the rest of Mono) is always in catch-up mode with Silverlight and .Net, and, as a result, has never worked reliably for me.

LightSwitch and the Azure admin console does depend on Silverlight 4, and the current stable version of Moonlight targets Silverlight 2. The current beta version of Moonlight, version 3.99, does target Silverlight 4, but when I tried to access the Microsoft products from the reviewer workshop, both teased me with a spinning “app loading” icon before dumping me off into a blank page.

Problem Two: Mono was part of Novell until, in the wake of Novell’s acquisition by the Attachmate Group, the Mono team was cut loose (you can’t really kill an open source project) and left to fend for itself.

Fortunately for Mono, Moonlight, and the prospect of me ever running Silverlight-based applications on my Linux computer, the project’s founder, Miguel de Icaza announced yesterday that his Mono team would carry on in the form of a new startup, Xamarin. I hope that one of Xamarin’s first new customers will be Microsoft, through an engagement to make Linux a first-class platform for the Azure admin console and the LightSwitch runtime via Moonlight.

Yes, Linux is a much smaller-share platform than Windows or OS X, but Linux is big enough to pay attention to–something that Microsoft definitely “gets,” as evidenced by the excellent cross platform support built into Exchange 2010’s Outlook Web Access, and the slate of Office 2010 Web Apps.

What’s more, an effort to bring the development-oriented Azure and LightSwitch to an open source operating system fits well with Microsoft’s ongoing effort to garner good will among developers, implementors and users of open source software.

If Microsoft were to retain Xamarin to bring Moonlight and Mono closer to parity with Silverlight and .Net, it would address my problems one and two, and would go a long way toward fleshing out Microsoft’s mixed source in harmony message.