Welcome!

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

Related Topics: .NET

.NET: Article

Making Fast Progress

Mono 1.0.2, 1.1.1 released

Mono has a new Web site (www.mono-project.com) that replaces the old one (www.go-mono.com). If you go to the old address, your browser will get redirected to the new site. There have been no major changes beyond the usual updates.

There are now two branches of Mono and both have new releases. The stable release is 1.0.2, and the development release is 1.1.1. Mono now follows the open source practice of assigning even numbers (1.0.x) to stable releases and odd numbers (1.1.x) to development releases. The 1.1.1 release contains new .NET 2.0 features; specifically, static classes, partial types, and the #pragma directive, as well as improvements in generics and anonymous methods.

Graphics data types (e.g., point, box, lseg, path, polygon, and circle) have been added to the Npgsql database classes.

The need for a Visual Basic work-alike for supporting ASP.NET has brought the Mono Basic compiler into the limelight. It has advanced to the point that it can now be used to run ASP.NET Web pages, and it will continue to improve.

ADO.NET 1.0 is being finalized, and work on ADO.NET 2.0 is advancing. Security and Web services continue to improve, and the 1.1.1 compiler is now about 20% faster than the 1.0.2 version.

SWF
The new managed SWF is open for development. As of mid-September, 12 controls are complete and 5 are currently being worked on. Many more controls will be complete by the time you read this. The easiest, but not the most useful, controls are being done first. This is to assist in the development of the OS interface drivers and to provide some good examples on how to implement controls for those who want to help out (if you want to help, see www.mono-project.com/contributing/winforms.html).

The current implementation uses System.Drawing and a ControlPaint class for displaying controls. WinProc and CreateParameters are implemented by a small driver, which uses Win32 for Windows, X11 for Linux and MAC, and has the possibility of MAC-specific (Cocoa) drivers in the future. All of the controls support themes by use of a ThemeEngine class. Currently there are two themes: Win32 classic and GTK. Others can and will be added.

Optimizations
Remember last month when I discussed some cases in which Iron Python benchmarks ran slower on Mono than on the Microsoft implementation of .NET? I pointed out that many Mono developers were "test driven" and that given a benchmark such as this, they would go to work. Well, here's a quote from Miguel's blog of August 25 (last month's deadline was mid August):

During my vacation plenty of micro optimizations were done to the JIT and Paolo has fixed the exception bug that made throwing exceptions several orders of magnitude slower than it should have (exposed by IronPython). Also Paolo is working on a new trampoline setup that will help the dynamic nature of IronPython as well as enabling some clever recompilation strategies.

Also from the same day's blog:

Martin continues to improve our generics compiler: just when he thought he was done, we received the C5 generics class libraries (which seems to be the largest body of generics code out there) and he is now fixing the bugs exposed by this.

C5 is a library of templates including persistent tree data structures, heap, heap-based priority queues, and hash-indexed array lists and linked lists. These were originally written by Peter Sestoft and then greatly expanded by Niels Kokholm for his masters' thesis. It was started using internal builds of .NET 2.0 provided by Microsoft's Cambridge office, and now uses the public .NET 2005 betas. It has been released under the X11/BSD license. For more details, including a slide show presented at Microsoft, see www.itu.dkresearch/c5/

New Standards Documents
The ECMA documents for .NET have always been downloadable for free, but the ISO standards have just been made publicly available for free downloads. The C# standard is at www.iso.org/iso/en/ittf/PubliclyAvailableStandards/c036768_ISO_IEC_23270_2003(E).zip. The CLI standard is at www.iso.org/iso/en/ittf/PubliclyAvailableStandards/c036769_ISO_IEC_23271_2003(E).zip. New ECMA C++ and CLI standards can be downloaded from Click Here!.

Odds and Ends
Peter Williams has released MBuild 0.0.3.1. It is at www.newton.cx/~peter/software/mbuild-0.0.3.1.tar.gz

IKVM.NET, the Java VM for use with .NET, continues to improve, and they are releasing a new snapshot about once a week. You can get the latest news at http://weblog.ikvm.net.

For a blog on running JavaScript on Mono using Rhino and IKVM.NET and also using .NET classes from JavaScript, go to http://chimpen.com/things/archives/001427.php. It's slow, but it works!

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.