Welcome!

.NET Authors: Liz McMillan, Peter Silva, Yakov Werde, Matthew Pollicove , Kevin Benedict

Related Topics: .NET

.NET: Article

Mono Releases Beta 1, Starts Looking at Beta 2

Open source looks at competing with Longhorn features

Mono makes its goal of releasing v1.0 beta 1 on May 4, adding support for both the Global Access Cache (GAC) and the latest ECMA generics, as well as improving CLS compliance. Novell hires another open source developer and open sources an Exchange client. Open source leaders start looking at horn-swaggling Longhorn.

Mono Unleashes the First of Two Betas for v1.0
The big advance in the first Mono beta is support for the GAC, which had to wait for support from the cryptography library. It was more difficult than it would seem at first not only because it has to support different platforms, but there are also issues about exactly how it works, some issues are still being resolved.

Mono supports two software "stacks." One stack is an ECMA/Microsoft stack compatible with the Microsoft version of .NET. The other stack is composed of non-ECMA/Microsoft components such as Gtk#. The two stacks can be mixed and matched as long as dependencies are satisfied and conflicts are avoided. For instance, if you use System.Windows.Forms, you must include System.Drawing. Trying to use System.Windows.Forms and Gtk# at the same time is likely to cause conflicts.

This release has full support for generics in both the C# compiler and runtime, but this is not yet officially supported, so to use generics one must compile Mono with the v2 flag set. The compiler can now flag non-CLS-compliant code and supports pinned variables - those that cannot be moved around by the garbage collector, such as memory locations passed to API calls. Embedded Mono allows applications to support scripting and macros. For Sun users, the SPARC JIT is now on a par with the x86 JIT compiler. Also included is a new interpreter written by Ben Solomon that is three times faster than the old interpreter. Mono now has its own internalization, so IBM's ICU is now only needed if collation is used. System.Drawing is now nearly complete.

Open Source Goes After Longhorn
After Novell acquired Mono and SUSE, I noted that some of the most difficult parts of .NET 2.0 were related to the new OS features, and that having a close association between Mono and a Linux distributor could help counter Microsoft's OS advantage. Novell has released most (some Netware-specific parts remain proprietary) of iFolder (written using Mono) to open source. One of iFolder's most important features is that it adds metadata to file systems, allowing WinFS-type functionality. Ed Dumbill reports on an iFolder presentation from the Mono meeting back in March at usefulinc.com/edd/blog/. Ed has also written Mono: A Developers Guide, published by O'Reilly Press. I have not read it yet, but it looks good. Details on the book are at www.oreilly.com/catalog/0596007922/.

In April, there was a meeting between leaders of KDE, Gnome, and Mozilla to discuss how the projects could work together to compete with Avalon and XAML. This was just a first meeting, so nothing concrete was decided, but everyone realized that working together was key to competing with Longhorn. One thing not discussed was combining KDE and GNOME, as both projects have different goals and philosophies.

Odds and Ends
Novell again showed its commitment to open source by releasing the Ximian Connector, a cross-platform client for the Microsoft Exchange mail server. Evolution, the Novell exchange server, will remain a closed source. Novell is also using Mono as a base for iFolder as well as for extensibility with the Nautilus file manager. I have lost track of all the stuff Novell has released to open source.

Novell has hired Massimiliano Mantione to work full time on Mono; his main tasks will be related to compiler optimizations.

The University of Wroclaw has created a new language for .NET called Nemerle, which is written to run on Microsoft .NET, Rotor, and Mono. They have received one of the Microsoft Rotor2 grants to further the development of this language. One neat feature is that functions and blocks of XML can be passed around as parameters. Learn more at www.nemerle.org. A list of languages supported on Mono is available at www.go-mono.com/languages.html.

More Stories By Dennis Hayes

Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.