Welcome!

.NET Authors: Bruce Armstrong, Marek Miesiac, Jason Dolinger, Yeshim Deniz, Liz McMillan

Related Topics: .NET, Linux

.NET: Article

Mono Releases Version 1.1.10 and New Roadmap

Portable.NET gets two $4,500 grants

Mono Version 1.1.10
Version 1.1.10 is another release packed with new code. The release notes can be found at www.go-mono.com/archive/1.1.10/, and can be downloaded from www.mono-project.com/Downloads. Mod_mono, the ASP.NET module for the Apache Web Server, now has an autoconfiguration tool that eliminates the old requirement that administrators manually import all of the directories containing ASP.NET code. This tool allows an ASP.NET application to work with no configuration changes to Apache; similar to how PHP works under Apache, all files with ASP.NET extensions are automatically handled by Mono. Mod_mono also now works correctly with virtual hosts, so individual servers can be restarted using the mod_mono control panel.

Mono will make its next major release, version 1.2, when System.Windows.Forms is ready. The current plan is to have System.Windows.Forms complete by the end of November 2005 (I am writing this in early November), and spend three months on bug fixes before releasing in late February. The 1.1.10 release includes bug fixes, performance enhancements, and drag-and-drop and menu improvements while running under X11. It also includes a .NET 2.0 DataGridView, courtesy of the Google Summer of Code.

For performance reasons, System.Drawing no longer requires permissions to call unmanaged code. Code Access Security (CAS) has been added to system.dll, and is being added to System.Web.dll. ProtectedData is now supported using DAPI on Windows, and managed code on Linux; also, protected memory nor works under Windows. Assemblies can be signed with RSA key pairs ranging from 384 to 16,384 bits.

By default, the Mono certificate store is empty, and in the past users have had to add certificates they trust to the store. Mono now has a tool to import certificates from Mozilla, thus making this job much easier.

The JavaScript compiler has support for multiple file compilation as well as the import statement, and can late bind to objects derived from System.Object. It now passes 6,981 out of the 7,229 Mozilla test cases that it can compile.

After the addition of Friend Assemblies and External Alias qualifiers, the only feature left for C# 2.0 is boxing related to nullable types, which relates to changes made just before Visual Studio 2005 shipped. Novell will be focusing on Mono 1.2, and will not be working on C# 3.0 features until after Mono 1.2 ships. This of course does not prevent anyone else from starting on those features, and they should appear quickly after 1.2 ships, as all C# 3.0 features are expected to take less effort than generics alone in C# 2.0.

Additions to the class libraries still continue to add .NET 2.0 features, and most important, System.Configuration is being worked on to support ASP.NET 2.0. System.XML had some method changes to match the final version from Microsoft. The System.Delegate namespace received code for contravariant and covariant delegates.

As Mono moves toward the 1.2 release, performance gets more attention, and 1.1.10 reflects that. Jon Trowbridge has written a heap profiler (heap-buddy), which has put a lot of the framework classes on diets, especially StreamReader.Readline. A new feature has been added to track page access, and it has been used to minimize page faults. The memory used by internal data structures has also been reduced. There is a new profiler mono-profiler-aot, which creates files that can be fed back into the ahead-of-time compiler to improve the physical layout of executables. Exception processing when the exception object is not used has been optimized, mul_imm optimizations have been ported from the old JIT engine to mini (the new JIT engine), and DateTime parsing has been optimized.

LDAP received a number of bug fixes and performance enhancements. The Mono.Unix namespace has been reorganized, and now supports arbitrary file names that were not supported by the old character encoding. The old versions of methods that changed are still available, but are marked as obsolete. The plan is to stabilize the Mono.Unix API before the 1.2 release. Mono is now relocatable on Linux and Solaris 10 systems; move any Mono package or RPM to any directory, and it will continue to work. Mono.Cairo has received over a dozen significant changes.

Miguel de Icaza has blogged about current the status of Mono and Novell's (unofficial) priorities for Mono. The blog is at http://tirania.org/blog/archive/2005/Nov-17.html. Miguel also plans to write another blog on the priorities of contributors other than Novell.

Portable.NET
Portable.NET has received two grants of $4,500 US each. The first is for the completion of LibJIT, a generic compiler engine that can take intermediate code in three-address form (no more than three address per line), and output native code (see Monkey Business in .NETDJ Vol. 2, iss. 6). The second grant of $4,500 is for a C# front end to LibJIT.

About 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 (1) View Comments

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.


Most Recent Comments
SYS-CON Australia News Desk 02/09/06 09:31:12 AM EST

Version 1.1.10 is another release packed with new code. The release notes can be found at www.go-mono.com/archive/1.1.10/, and can be downloaded from www.mono-project.com/Downloads. Mod_mono, the ASP.NET module for the Apache Web Server, now has an autoconfiguration tool that eliminates the old requirement that administrators manually import all of the directories containing ASP.NET code.