Mono combines proprietary and open source programming
What is it?
Mono is an open source development platform based on Microsoft's .net Framework. Primarily aimed at the Linux community, it can also be used to build cross-platform applications, including applications that run on Windows. Mono was begun by Ximian, creator of the Gnome desktop, which is now owned by Novell. Novell described it as "a commercial-grade development platform for Linux desktops and servers, which lets developers get software to market faster and more cost effectively".
When Microsoft relaxed its hold on proprietary technology by publishing standards for C# and the Common Language Infrastructure with standards body ECMA, the idea was to encourage acceptance of .net and create a vibrant third-party development community.
But Mono represents a full-blown open source alternative and some potential users are concerned about what might happen should Microsoft reassert its intellectual property rights.
Where did it originate?
Mono has its roots in the open source Gnome project, which began in 1997. "We will be cloning the .net development platform because it is a rich, powerful, and well-designed platform that would help to improve the free software development platform," said Gnome and Ximian founder Miguel de Icaza.
What is it for?
Mono includes developer tools and the infrastructure needed to run .net client and server applications. These include a C# compiler, an ECMA-compatible runtime engine, a Visual Basic runtime and class libraries, which include ASP.net, ADO.net and other .net libraries. There are also cross-platform class libraries for data access, including Postgres, MySQL, DB2, Sybase, Oracle and ODBC.
Mono's equivalent to Visual Studio .net is Monodevelop, a port of the open source Sharpdevelop integrated development environment, which includes features such as code completion and integrated debugging.
What makes it special?
Mono sets out to use the standards Microsoft has created for .net and to make them independent and freely available. For example, any API written using a CLS provider language can be used by any language that is a CLS consumer.
IT publisher O'Reilly's website said, "The audacity of using Microsoft's own investments and technologies to bring developers to the Linux platform sets the tone for interesting times."
How difficult is it to master?
Mono makes it possible for Visual Basic programmers to write code that will run on Linux and other supported platforms, including Windows, virtually unchanged.
Where is it used?
Once confined to open source diehards, Mono now has Novell behind it. Novell is busy smoothing off the rough edges and packaging software and services as commercial customers expect. It is using Mono internally in the development of products.
What systems does it run on?
Client and server-side applications and web services created in Mono can be deployed on Linux, Solaris and other Unix implementations, Mac OS X and Windows NT and XP.
What is coming up?
Mono will be updated to reflect developments in .net. However, this leaves Microsoft in the driving seat. The Mono project is keeping the APIs which are implementations of Microsoft's, and those which are Mono products, in separate stacks, in case of future patent problems.
There are few courses specifically for Mono, but you can find plenty of information and resources on the Mono Project site.
Microsoft .net courses are widely available from most of the large IT training companies and Microsoft itself.
Linux courses are similarly widespread - do a search on Google and take your pick.
This was first published in February 2005