Hotskills: Mono lets .net developers run applications on Linux

Hot skills Mono an option for C# and Visual Basic coders

What is it?

Mono is an open source implementation of the Microsoft .net platform, which was once hailed as a route out of proprietary lock-in to Microsoft. Mono implementations of and Windows.Forms enable users to take their applications from Windows and, sometimes with a bit of tweaking, run them on Linux.

To Mono's founders, the proprietary/open-source battle was less important than issues of co-existence and the most appropriate platform for the job. According to Justin Steinman, Novell's director of product marketing for Linux and open platform systems, and the man in charge of selling Mono to the world, "Mono essentially enables you to run .net applications on Linux," giving you the choice of developing for either platform knowing that it will run on both.

To the anti-Microsoft crowd, Mono has sold out and now follows the Microsoft road-map at the expense of Linux. Pragmatists celebrate a world in which it is possible for Linux and Windows to co-exist, although some are bothered by Microsoft's history of surrounding and swallowing challengers, eventually leaving them to moulder unnoticed, condemned to the history books.

Where did it originate?

Miguel de Icaza, one of the people behind the Gnome Linux desktop, started the Mono project in 2001. Ximian, the company he co-founded, was taken over by Novell in 2003, and Mono 1.0 was released in 2004. Mono is Spanish for monkey - hence the choice of animal for the logo.

What's it for?

"Mono is an implementation of the .net development framework, but not an implementation of anything else related to the .net initiative, such as Passport or software as a service," says the Mono FAQ.

Mono should run binaries produced by Visual Studio without recompiling, but a Mono Migration Analysis tool checks that everything needed has been implemented. Many parts of Mono are exact parallels of their Microsoft and .net equivalents, such as Managed Windows.Forms.

Mono includes a common language infrastructure virtual machine and a class library that can work with any language that works on the .net common language runtime. There is a C complier, and support for XML.

What makes it special?

Whether it is what Microsoft planned or not, Mono is a fulfilment of the vision for .net, taking the technology to platforms, languages and communities that Microsoft alone could not reach.

How difficult is it to master?

Mono uses existing skills, such as Visual Basic and C#. One reviewer described cross-platform development using Mono as "almost too easy". As well as offering alternative approaches to .net development, Mono also provides a pathway for Linux developers who want to learn C#.

Where is it used?

Novell uses Mono for client and server applications such as Zenworks and iFolder, and for its search product, Beagle. Wikipedia uses Mono for its search facilities.

What systems does it run on?

Applications created for .net can be modified and run on Linux, Windows, Solaris and other versions of Unix, and Mac OS X. Supported languages include C#, Java, Boo, Nemerle, Visual Basic.NET, Python, JavaScript, Oberon, PHP and Object Pascal. Mono also supports PostgreSQL, MySQL, Firebird, Sybase ASE, IBM DB2, SQLite, SQL Server and Oracle.

What's coming up?

Moonlight, a Mono version of Microsoft's forthcoming Flash challenger, Silverlight.


Developer resources and links to Novell training and support are available on the Mono Project website.

Rates of pay

Developers with .Net and Linux skills typically earn from £30,000.

Computer Weekly/SSL salary survey

Read more on Operating systems software