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
ASP.net 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.
Training
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