Is Mono, a platform-independent implementation of .NET, to be taken seriously as a way of freeing applications to run wherever they want?

Is Mono, a platform-independent implementation of .NET, to be taken seriously as a way of freeing applications to run wherever they want? On the basis of current evidence it would seem so. ASP .NET without a Windows server and iOS 4 development without a Mac are just two of its achievements.

There was a time when Mono seemed well named - mono being the Spanish for monkey. Could you take it seriously? Well over time Mono has grown into a credible extension of the .NET system to other platforms. It not only provides a way to run desktop .NET applications on non-Windows platforms but ASP .NET applications on non-Windows servers - Linux and Max OS X.

If you find the idea of running ASP .NET on anything but a Windows server then you can convince yourself that it really does work by visiting the Sample Showcase provided by Infragistics hosted on a live LinuxServer running Mono: http://mono.infragistics.com/ The showcase is an e-commerce web site using ASP .NET Ajax controls among others.

In fact Infragistics take Mono seriously enough to provide Mono compatibility for their ASP .NET toolkit (part of the 2010 Volume 2 version of NetAdvantage for .NET) at no extra cost. The components work with either .NET or Mono as supplied and this is proof in practice that Mono is up to the job of providing extended platform support for your .NET applications.

To begin cross-platform development with the ASP.NET UI toolkit, you need to purchase a NetAdavantage for .NET 2010 Volume 2 subscription which works out of the box with Mono.

You don't even have to give up the familiar surroundings of the Visual Studio IDE. If you download and install the Mono Tools for Visual Studio (30 day free trial and $99 professional, $2,499 ultimate thereafter) then you can create, debug and deploy Mono applications to Linux just as if you were working with Windows. There is also a scan for compatibility tool and you can test the application on either Windows of Linux making it easy to create a fully portable application. You can even bundle your application into a SUSE Linux appliance making it possible for end users to install it as a virtual machine.

Clearly Mono isn't going to be something that every .NET programmer is going to see the need for, but having the ability to expand the platforms your application runs on can't be a bad thing.There is also the small matter that Mono currently provides the only way that .NET programmers can get to create applications for iPhone-like devices. The latest MonoTouch 3.0 supports iOS 4 and hence should allow the creation of applications that run on most iPad, iPhone and iPod devices without the need for a Mac of any sort.

Of course the viability of MonoTouch depends on Apple not objecting. Currently there seems to be no problem and the MonoTouch web site even claims that "several" MonoTouch applications have been accepted by the App Store - thus lessening the strangle hold Apple has on iOS 4 development. Whether or not this favourable state will continue is difficult to say but at the moment it seems not to represent a huge breach in Apple's control and it is also difficult how they could represent an objection to MonoTouch as anything but an attempt to ensure that iOS 4 development is under their control.

Let's hope that Mono continues to provide an alternative path for .NET and iOS 4.