Welcome!

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

Related Topics: .NET

.NET: Article

Mono Version 1.1.7 Released

Portable .NET plans major release

Mono Version 1.1.7 Released Portable.NET plans 0.7 Mono version 1.1.7 has been released, and the Mono crew is planning their second major release (1.2) for September. The key to the 1.2 release is SWF (System.Windows.Forms); when SWF is ready for prime time, 1.2 will get released. Monthly releases will continue until then.

In the meantime, bug fixes and performance enhancements will continue, as will work on JScript and MonoBasic, C# 2.0, and .NET framework 2.0 classes, especially ADO.NET 2 and ASP.NET 2; these will likely be included as preview versions. There are also separate projects in progress to improve the VM (virtual machine) with a precise garbage collector, string handlers, and cross-platform register allocation; these are being developed in separate branches, and will not be merged into the main Mono project until they are complete.

One VM project that made it into version 1.1.7 is a new IO Layer that does not use daemons on Linux. This change has both the Beagle search engine and the xsp server running three times faster than before (see chart at http://primates.ximian.com/~gonzalo/mono/ blog/archive/2005/May.php#05%2f09%2f2005%2021%3a24%3a47).

Bug fixes in HttpWebRequest eliminated a source of deadlocks, and improved client throughput; also Abort was fixed and ReadWriteTimeout has been implemented.

Newly implemented ASP.NET 2.0 controls in 1.1.7 are ButtonField, DetailsView, FormView, GridView, CheckBoxField, Hyperlinkfield, ImageField, and TemplateField. ASP.NET gains support for two-way bindings, ObjectDataSource, various improvements to the menu controls, and support for code render syntax inside nonserver tags. More information on the Mono ASP.NET 2.0 status is at http://primates.ximian.com/~lluis/blog/pivot/entry.php?id=37.

SSL/TLS had a number of bug fixes, including fixes in asynchronous operations, client-side certificates, and performance enhancements. Work on CAS continued, and more of the .NET 2.0 Framework has been exposed. System.Configuration.Install and System.ServiceProcess namespaces have been completed.

JavaScript and MonoBasic compilers are in heavy development. The JavaScript compiler gains Eval, For-In statements, custom constructors, Increment and decrement operators, first class functions, Strict-Equality operators, and RegularExpressionLiteral. The JavaScript runtime also sports half a dozen improvements; see the release notes at www.go-mono.com/archive/1.1.7/ for more details.

MonoBasic continues to improve with support for decimal numbers, as well as the End statement and Exit function, multiple target support for custom attributes (OR'ed), support for Conditional Constant Directives and expressions for directives, End statement and Exit function. Late binding is about 75 percent complete and works with sub, functions, properties, fields, and arrays. One milestone MonoBasic met in this release is support for default values. This is much more difficult than it sounds; it requires "decompiling" the compiled program, recompiling, and applying a patch to the runtime IL code.

ADO.NET has better support for disconnected mode and asynchronous commands. UnixListener and UnixClient classes have been added to the Mono.Posix namespace that allows access to UNIX type operating system calls.

System.Windows.Forms
Progress continues. In my April column, out of 69 major controls, 40 were ready for use, 18 were being worked on, and 11 were waiting for developers to step up and start work; now, 41 are ready for use, 24 are being developed, and only 4 (3 print-related controls, and the Help Provider) are still waiting for developers to step up. It is my understanding that a number of the 24 marked as being worked are actually complete, but just have not had their status updated.

Also for SWF in this release is a new double buffering implementation that has the Mono SWF behaving more like the Microsoft Version. Simple and complex data binding is now supported, but has only been added to ListBox, CheckedListBox, and ComboBox. Now that the data-binding core is complete, the rest of the bindable controls should be updated quickly. ImageListStreamer is now complete, and DataGrid, DataContainer, and RichTextBox have been prototyped.

Odds and Ends
Novell makes another big hire; Jeremy Allison of Samba fame has joined Novell.

Willibald Krenn wrote his master thesis on a continuous optimizer for the Mono compiler. For those interested in such things, you can read his papers at www.wpkrenn.net/pmwiki/pmwiki.php/Willi/MiniAmd64Backend.

A new Roadmap for NUnit is at http://nunit.com/devwiki.cgi?NunitRoadmap.

Portable.NET has set June as a tentative date for the next major release (0.7); I will have more details as they become available.

Balazs Fejes, a Java programmer who switched to Mono for home projects, tells of his switch to Mono and GTK#, what it took, and what he thinks at http://fb2.hu/x10/Articles/MonoForFun.html.

Tune in next month - I expect to have information on a free version of an interesting new tool that works with Mono; I think you will be impressed.

A currently available freebie worth grabbing is the Visual Studio 2005 Enterprise Edition Beta 2 from Microsoft. I did not even have to pay for shipping. Upper level MSDN members also have the option of downloading the DVD. You can order your free copy at http://msdn.microsoft.com/getthebetas/

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.