Welcome!

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

Related Topics: .NET, Linux

.NET: Article

Mono Project Grows as Novell Hires 2 Volunteers

System.Windows.Forms/Wine compatibility improved

This month I will look deeper into Mono's 0.30 release System.Windows. Forms (SWF) implementation changes, and also discuss some other ways that Novell has helped Mono and open source.

Mono
Last month I mentioned some of the highlights of the Mono 0.30 release, including XML, security, and C# compiler performance improvements. This month I will go over some of the other improvements and announcements. However, just after the 0.30 release, a couple of compiler bugs were found that affected several people using Mono for "real" work, so there was a quick 0.30.1 release. The full release notes can be found at www.go-mono.com/archive/mono-0.30.1.html; the release itself is at www.go-mono.com/download.html.

Included in the release notes is an announcement that Novell has hired two longtime Mono volunteers. One will be working from Barcelona on System.Drawing, joining three others in that endeavor. The other will be the first full-time security/cryptography programmer on the Mono Project. Regular readers likely recall that Novell moved at least a half-dozen programmers to the Mono project several months ago, and has donated LDAP code to Mono.

Since the start of the year, it seems that there has been an increase in the activity level on the mailing list from new programmers wanting to join the project, especially in the areas of using and testing SWF and System.Drawing. Combined, it looks as if Mono is going to get a lot more manpower. If this translates into more code, Mono could be entering a whole new era. Novell's acquisition of Ximian has been very good for the project, and Novell seems to be true to their word about keeping open source open.

Mono's SWF has been unusable on Linux for months (as I write this in February) while a more flexible foundation has been written. This phase is drawing to a close, and the results should be available by the time you read this. The biggest change is the way Mono works with Wine to implement SWF; this has evolved over time, and was complicated by differences between threading libraries and conflicts between the Wine and Mono packages about which software is initialized first.

At first SWF ran on Linux only with garbage collection turned off; then SWF would run with a special version of Mono-Wine in which the Mono team made many changes to the Wine source code. Of course, this left Mono needing to maintain a custom branch of the Wine tree, which is always bad; it forks the code base and requires maintenance, but there were too many changes (some of them ugly) for the Mono code to be rolled into the main Wine code base.

With the upcoming release only a few small changes need to be made to Wine, so in the short term Mono can respond to new releases of Wine quickly, and in the longer term, we are now close to having a set of patches that could be included in the main Wine code, enabling Mono to run with Wine out of the box. By the time you read this, work on the SWF classes and controls should be progressing again. Work is also under way to support the .NET 1.2 changes.

But back to the 0.30 release. Again, performance enhancements and bug fixes were the order of the day, with almost 1,400 Bugzilla issues closed - four times the number in the 0.29 release. There was also a big change in the process Mono uses to handle releases; Mono now does a "release candidate" a few days before the real release so developers can test the install packages on different operating systems.

This release includes an OS-independent FileSystemWatcher. If the OS is capable of firing an event when a file is changed, then the native support is used; if the OS does not support file watching, a thread is created to poll the file for changes. This is especially important for ASP.NET because it allows Web applications to react to configuration and source code changes without the need to restart the application. Three (or more by the time you read this) Web applications have been ported to run on Mono: Flexwiki, DasBlog, and the infamous Pet Shop. They can be downloaded from www.go-mono.com/ports.

Portable.NET Portable.NET now has a newsletter "The DotGNU Informer," published on an irregular basis at http://dotgnu.info; it can also be received with the mailing list. Mac packages for Portable.NET 0.6.2 are now available for download using the DarwinPorts system. Information on DarwinPorts is available at http://darwinports.opendarwin.org. The Portable.NET DarwinPort script file is at http://pnet.darwinports.com. Since the 0.6.2 release, bug fixing continues apace, SWF continues to improve, System.Xml is being actively worked on, and Rhys Weatherley continues to work on the C compiler. Version 0.6.4 is about to be released, and details will be in next month's column.

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.