Reviews
Review: Mono 1.0
Mono 1.0
Free
www.mon-project.com
Just in case you missed the memo, Mono is a cross-platform
(Windows/Linux/Sparc/Mac/etc) implementation of some of the core parts
of .NET, released under open-source licenses (GPL, LGPL, and MIT,
depending on which piece). Originally launched by independent developer
Ximian, the project is now under the auspices of Novell, which purchased
Ximian last year. Recently, they reached a major milestone with the
release of version 1.0, including source and binary downloads for all
major platforms.
Being a Windows developer, I grabbed the Windows version and gave it a
spin. The installation (using the Nullsoft installer) was
straightforward, though it did require running a batch file manually at
the end to update the path on my development computer. After that,
compiling and running .NET code is something of an anticlimax. Grab your
C# source, and instead of using the Microsoft csc compiler, use the Mono
mcs compiler instead. Then use the mono runtime library to launch it,
and voila. I used some of the code from MASTERING VISUAL C# .NET as test
cases, and it worked fine - except in the cases when namespaces (notably
Windows Forms) aren't yet implemented by Mono. The goal here was to
implement all the ECMA standard parts of .NET, and that doesn't include
the Windows-specific portions.
But even without Windows Forms, plenty of .NET applications will make
the transition smoothly. There's full support for ASP.NET, for example,
complete with a dedicated Web server; they say they can run an
unmodified IBuySpy site, though I didn't test that claim. And Mono goes
beyond Microsoft's implementation in some ways as well. For instance,
they provide namespaces to work with the Gtk+ GUI toolkit, native Zip
file support, LDAP access, and a Mono.Data namespace that can talk to
Postgres, MySql, Sybase, DB2, SqlLite, Tds (SQL server protocol) and
Oracle databases.
Is Mono more than just a clever parlor trick? Yes, I think it is. Part
of the promise of having chunks of .NET as a recognized standard was
that they would be available beyond places where Microsoft would put
them. Mono delivers on that promise, and makes some things - like
migrating console and Web applications from Windows to Linux - not only
possible, but simple. That's a good thing for developers.