Novell Releases Mono 1.2

Mono brings .NET execution to Linux and other platforms.

At Microsoft TechEd Europe in Barcelona, Spain, Novell announced the availability of Mono 1.2, the open source implementation of the .NET Framework. More specifically, Mono implements the ECMA 334 and 335 standards: these are the Common Language Infrastructure (CLI) execution engine and the C# language, respectively.

Mono 1.2 focuses on getting all the bits for the .NET Framework 1.1 compatibility in place. However, as the work in some areas was completed, some of the Mono developers moved into supporting the new features available in the .NET Framework 2.0. Today some components of 2.0 are available on the release of Mono, but they are not complete. The next release, Mono 2.0, will bring the 2.0 functionality to developers on other platforms.

It includes the updates to the C# compiler, support for generics, updates to the core class libraries and the System.WinForm namespace, and the Mono debugger. In addition, this release adds generic types support in the C# compiler; execution system and core class libraries (a feature of C# 2.0); System.Windows.Forms 1.1 support; the Mono debugger, gtk# 2.0 (which also includes support for gtk 2.6); and various scalability and performance enhancements.

Mono supports a wide variety of hardware platforms and operating systems. The 32-bit ports of Mono include the x86 architecture, Sun Microsystem's SPARC, the embedded ARM processor, and the IBM S390 mainframes. On 64-bit, Mono supports the Itanium, the s390x, and the x86-64 architecture, with ports for other platforms following closely.

Deploying to Other Platforms
The availability of an open source implementation of the .NET Framework enables enterprises to develop applications using Microsoft Visual Studio, yet deploy them on alternative platforms and operating systems. There are also tools available to develop directly with Mono.

Miguel de Icaza, vice president of developer platforms at Novell and maintainer of the Mono project, noted that Novell can also provide Mono as commercially licensed software. "Some enterprises have policies that require the use of commercial software. We can accommodate that," he explained.

Mono typically lags the release of the corresponding Microsoft version of the .NET Framework, according to de Icaza. While the lag time can be as long as 12 to18 months, the gap between the .NET Framework features and equivalent Mono features is rarely an issue. In many cases development teams do their initial development on Windows using Visual Studio. They may have a plan to use Mono for cross-platform support afterward, or they may discover the need after delivering the application. In reality, however, it is typically a year or more after beginning a .NET effort that Mono comes into play.

Mono allows developers to mix and match components written in a variety of languages, either using the standard .NET languages (C#, JavaScript, and Visual Basic); Java, as well as IronPython; Boo; PHP with the Phalanger compiler; Nemerle; and F# for those that prefer functional languages.

Mainsoft, a contributor to the Mono project, uses Mono libraries as a part of its Visual MainWin for J2EE product suite that provides a solution for cross-development between Visual Studio and Java. Using the Mono libraries, Visual MainWin provides the ability to run ASP.NET and other server-based applications under the Linux operating system.

The Mono project has already begun looking at upcoming technologies that fall under the umbrella that Microsoft has designated .NET 3.0. One subproject, Olive, is working on several of these technologies, including CardSpace, Windows Communication Foundation (WCF, and formerly known as Indigo), and Windows Workflow Foundation (WWF).

Other .NET 3.0 technologies, such as the Windows Presentation Foundation (WPF)—a new API for creating desktop applications—are not on the current Mono road map.

About the Author

Peter Varhol is a principal at Technology Strategy Research LLC, an industry analysis and consulting firm.