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.
Training
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.
www.mono-project.com