Mono Advances .Net Platform on Unix
The future of Microsoft Corp.'s .Net Framework development platform is still unclear, but one thing we can safely predict is that solid Unix support will be critical to the platform's ultimate success.
That's why organizations testing .Net code should be keeping an eye on Mono, an open-source implementation of the .Net Framework. Mono (at www.go-mono.com) reached a major milestone last month when its C# compiler (itself written in C#) was first able to compile itself successfully on Linux.
For a project that just started last summer, Mono is making quick progress. "At this point, we have a mostly complete ECMA [European Computer Manufacturers Association] version of the compiler and the run-time," said Miguel de Icaza, Mono project founder and chief technology officer of Ximian Inc., in Boston.
Other key parts of .Net development that are not part of the ECMA standards, such as WinForms, Active Server Pages .Net and ActiveX Data Objects .Net libraries, are in development for Mono.
Mono currently runs on X86 Windows as well as Linux running on X86 and PowerPC chips. Ports to StrongARM and SPARC CPUs are in progress. Mac OS X support is also planned.
In eWeek Labs' tests of Mono 0.10, released March 27, we were able to build Mono on a Linux system and then run several simple test C# programs there. We used both Mono's interpreted .Net run-time and its JIT (just-in-time) compiler-based run-time. (The latter ran our simple tests twice as fast as, to 10 times faster than, the former, showing how much difference a JIT compiler can have on speed.)
Because .Net applications use an architecture-independent byte-code format (just as Java does), we could copy simple programs we compiled on Windows using Microsoft's tools to a Linux system and run them as is, creating an opportunity for huge development cost savings.
Mono is also designed to be linked with existing applications to allow hybrid native code/.Net code applications.
"You don't have to rewrite your whole application, which is the Java way," said de Icaza. "In the .Net world, leave your code the way it was, and write .Net extensions. You don't have to rewrite existing code."
Future versions of Ximian's Evolution mail client will include .Net code run using Mono, according to de Icaza.
Microsoft has its own Unix .Net offering in development (beta versions are expected in the first half of this year), but Microsoft's Shared Source license prevents commercial use. In contrast, the Mono run-time is licensed under the GNU Lesser GPL (General Public License) and can be deployed commercially or included with third-party programs without requiring application creators to publish their source code. For real deployments, most organizations that want to use .Net programs on Unix will need Mono.
A second .Net Framework implementation, DotGNU Portable.Net (see www.eweek.com/links) is making progress but hasn't gained the corporate backing Mono has. Portable.Net also uses the GNU GPL, which requires programs linked to Portable.Net libraries to be licensed under the GNU GPL as well, and so have source code published.
West Coast Technical Director Timothy Dyck can be reached at firstname.lastname@example.org.