|Major Mono rev ships
Oct. 06, 2008
Novell announced the availability of its dual-licensed cross-platform implementation of Microsoft's .NET development framework. Some five years in the making, Mono 2.0 adds "full" compatibility with .NET 2.0, improves performance and stability, and introduces an analytical tool for .NET-to-Linux migrations, says the Mono project.
(Click for larger view of F-Spot, a Mono-based photo manager for GNOME Linux desktops)
Mono is a from-scratch implementation of Microsoft's .NET runtime and application development framework. Novell acquired the technology with its 2003 purchase of Ximian, a start-up co-founded by Mono project instigator Miguel de Icaza.
Mono 2.0 arrives some five years after the release of Mono 1.0, which shipped in early 2004. Significant interim releases include Mono 1.2, which added cross-platform features, and Mono 1.2.3, the first release with a Visual Basic.Net compiler actually written in .NET.
During the last couple of years, Mono has become an increasingly important part of the Linux desktop, underpinning such ubiquitous packages as the f-spot photo manager, Banshee music player, and Beagle desktop search utility. It has also seen use in countless commercial software projects, and even in web applications such as those powering social networking site iMeem.
(Click to enlarge)
One of the best known Mono-based deployments is the Second Life online virtual worlds project (pictured). The site's developer, Linden Lab, uses Mono to "improve the stability and speed of scripts -- particularly calculation-intensive ones," says the Mono group. A sampling of Mono applications can be found here.
Mono 2.0 now supports Linux, Solaris, Unix, Mac OS X, and BSD, says the group. The Mono 2.0 compiler is said to be fully compatible with Microsoft .NET 2.0, and also mimics portions of later versions. The Mono API "today is somewhere in between .NET 2.0 and .NET 3.5," says the Mono FAQ.
Two Linux-compatible Mono apps: NClass UML modeling app (left)
and Codice Plastic SCM (Source Control Management) system (right)
(Click on either to enlarge)
Major Mono components are said to include:
A key new version 2.0 feature for Linux developers is the Mono Migration Analyzer (MoMA), which "helps developers quantify the number of changes required to run their .NET application in a Linux environment," says the group. Running natively on .NET or on the Mono framework, MoMa helps pinpoint platform specific calls (P/Invoke) and other areas "that are not yet supported by the Mono project," says the group. It also is said to report locations where native code is invoked, but which may not be portable. Based on an analysis of 4,600 .NET applications using MoMA, 45 percent required no code changes to work with Mono, and an additional 24 percent required fewer than six code changes, claims the group.
- Common Language Infrastructure (CLI) virtual machine that contains a class loader, just-in-time compiler, and a garbage-collecting runtime
- Class library compatible with any language that works on the CLR, with both .NET compatible class libraries and Mono-provided class libraries
- C# compiler (now rev'd to C# 3.0 support)
Additional new features in Mono 2.0 are said to include:
Aside from MoMa, other new or greatly improved tools available in Mono 2.0 are said to include:
- Easier installation -- one-click installation for SUSE Linux Enterprise and openSUSE
- More comprehensive platform and hardware support -- specific hardware support includes x86, AMD 64, IA-64 (Itanium 2), EMT 64, PowerPC, ARM, S390 and S390x, SPARC, and SPARC 9
- Improved .NET API support -- supports all Microsoft .NET 2.0 APIs, including ASP.NET, ADO.NET, and Windows.Forms
- C# 3.0 LINQ support -- C# 3.0 compiler with LINQ support
- Performance upgrades -- Better scaling and performance claimed for ASP.NET. ADO.NET, and Mono runtime
- New Virtual Machine image -- downloadable image with a "ready-to-use development environment"
- New downloads -- open source web and desktop .NET applications included, such as ASP.NET Starter Kits
In July, the Mono group released version 0.7 of a new offshoot of Mono called Moonlight. This Mono-based Moonlight plug-in emulates Microsoft Silverlight, a cross-platform multimedia plugin built on top of the VC-1 video format. Moonlight is being incorporated into Nokia's Maemo distribution used on its Linux-based Nokia Internet Tablets.
- Debugger -- a debugger for managed code
- Gendarme -- an extensible rule-based tool for locating problems in .NET applications and libraries that are not typically checked by compiler
- Mono Linker -- XML-based linker for reducing size of executables and libraries
- Mono Tuner -- a tool for applying arbitrary user-defined transformations to assemblies
- Mono Documentation -- toolset upgraded to support documenting generics and extension methods
Stated Jim Purbrick, technical director, Core Platform, Linden Lab, "Deploying Mono as the primary scripting engine on the Second Life Grid has had enormously positive effects for our Residents. In fact, some of the internal benchmarking we've done has shown that scripts running on Mono run up to 220 times faster."
Mono 2.0 is available now for free download, says the Mono project. The download page should be here, and general information may be found here. Users statically linking the Mono runtime -- for example, for use in iPhone applications -- will need a commercial license, according to the project.
-- Eric Brown. Henry Kingman also contributed to this report.
Do you have comments on this story?
NOTE: Please post your comments regarding our articles using the above link. Be sure to use this article's title as the "Subject" in your posts. Before you create a new thread, please check to see if a discussion thread is already running on the article you plan to comment on. Thanks!
(Click here for further information)