| By Dennis Hayes | Article Rating: |
|
| January 18, 2007 01:00 PM EST | Reads: |
8,846 |
When a project like Mono approaches a major release like version 1.2, the code is forked: copied into a separate branch in version control. In one copy, the "main" branch, work continues normally, while the code in the other "release" branch goes through a series of freezes leading up to its release.
The first freeze is on changes to critical features like the garbage collector. Later there is a freeze on new features, and last there is a freeze on everything except "showstopper" bugs while the release is tested. Freezing the critical core first allows code that can cause crashes or data loss to be thoroughly tested, while allowing normal development to continue in the rest of the program. Once the key features needed for the release are close to completion, "feature freeze" is implemented, after which no new features are added to the software but work continues on existing features. This keeps new bugs from being introduced along with new features, and it also focuses the developers' energy on completing and debugging the features already included. As the release date looms large, a freeze is put on all work except showstopper bugs that prevent the software from being released. Finally there is a "code" freeze; no more changes to the software are allowed. Beyond this point, unless a new showstopper bug is found, the only changes made are fixes to bugs in the installation packages, such as components left out, or wrong configurations on different platforms.
Note that "stable" releases, such as version 1.2, that have gone through the full testing process are the only releases recommended for critical applications.
While all this is going on in the release branch, development is continuing apace in the development branch. Changes made in the release branch are also copied into the development branch. This means that when Mono shipped the 1.2 release, there were a number of changes already backed up in the development branch, and these were released shortly afterward as version 1.2.1, detailed below.
There were many small bugs fixed in the core runtime, and Thread.Interrupt has been implemented. Web services have received .NET 2.0 updates including the List<T> generic types. Version1.2.1 has partial support for the MIPs processor; complete support has since been checked in and is available in the 1.2.1 release. ASP.NET 2.0 has received many updates from the folks at Mainsoft, as well as from Marek Habersack. ADO.NET received a lot of .NET 2.0 updates, plus XmlSchema reading and writing capabilities. In the security arena, X.509 certificates has had a number of updates to become more .NET 2.0 compatible.
System.Windows.Forms, having been newly completed, received the most updates, including a lot of cleanup work on TextBox and RichTextBox. Transparent and translucent windows now work correctly with Xgl + Compiz, there are faster startups under X11, and lots of focus fixes, including preventing popup windows and menus from stealing focus from the main form. TreeView now has improved scrolling, expanding and collapsing, DataGrid does a better job of handling binding and navigation, the Printing UI is nicer, and tool bars and menus work much better. System.Windows.Forms now passes all 598 unit tests under Linux.
Moma
Mono has a great new tool called the Mono Migration Analyzer. It is used to analyze .NET programs for Mono compatibility. It will create a report that lists .NET functions used by programs that have "Todo attributes," throw "NotImplemented" exceptions, or that are missing in Mono. It also lists all P/Invokes (direct calls to OS functions). You can look at the report yourself, or use a one-button click to send the report to the Mono team. Note that it does this using reflection, so you can run it on any program that you would like to see run under Mono, even if it is a third party program. You can read more and get a copy of the program at www.mono-project.com/Moma. This was used to make many improvements in Mono version 1.2.2, which I will discuss next month.
Odds and Ends
Want to write a game for the Xbox 360? Microsoft now has a special version of VisualStudio, Game Studio Express, for writing games that will run on both Windows and the Xbox 360. It is based on the Microsoft XNA game framework, and can be used free of charge to create games for Windows, or for $99 a year for non-commercial Xbox titles. Commercial titles will require the professional version of Game Studio.
There is also an open source toolkit called Mono.XNA for creating games on the Xbox 360, Windows, and Linux. It is based on Mono and the Tao framework (open source bindings for.NET to OpenGl, SDL and other libraries). It is in the early stages of development and could use a lot of help. There is a basic release working with a few very minor demos. Volunteer or find out more at www.taoframework.com/Mono.Xna.
I will be giving a presentation on Mono at the Atlanta Code Camp on January 20, 2007. The Atlanta Code Camp is hosted by the Atlanta .NET users Group and will be held at the DeVry University in Decatur Georgia. You can visit their home page at www.atlantacodecamp.com, and follow links to see the list of speakers or to get directions.
Published January 18, 2007 Reads 8,846
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
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.
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Adobe’s Aiming ColdFusion at Multiple Clouds
- Cloud Computing Journal: Adobe to Deliver ColdFusion in the Cloud
- Adobe Unveils LiveCycle Enterprise Suite 2 for Deployment in the Cloud
- Adobe Flex Developer Earns $100K in New York City
- Adobe May Cooperate with Apple to Transplant Flash Player to iPhone
- Ph.D. in Twitter Anyone?
- Eolas Sues the Internet
- Adobe LiveCycle Enterprise Suite 2 for Cloud Computing
- Adobe Betas Target RIAs and Cloud Computing
- Special Report on the Emerging Cloud Computing Trend
- Adobe Cans Another 9% of its Workforce
- My Thoughts on Ulitzer
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Ulitzer Live! New Media Conference & Expo
- Adobe’s Aiming ColdFusion at Multiple Clouds
- Eval JavaScript in a Global Context
- Fig Leaf Software to Exhibit at Government IT Conference & Expo
- Cloud Executives Feature on Cloud Computing Expo Power Panel
- Software Flexibility in the Cloud - Part 4 of 5
- Cloud Computing Journal: Adobe to Deliver ColdFusion in the Cloud
- Is Microsoft as Free as Open Source?
- Adobe Reader Sued
- Adobe Unveils LiveCycle Enterprise Suite 2 for Deployment in the Cloud
- Where Are RIA Technologies Headed in 2008?
- Cover Story: How to Increase the Frame Rates of Your Flash Movies
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Your First Adobe Flex Application with a ColdFusion Backend
- Adobe Flex 2: Advanced DataGrid
- i-Technology Blog: Death-Knell For "Rich Media? Hardly!
- Adobe/Macromedia - Microsoft, Look Out!
- How To Create a Photo Slide Show ...
- Adobe Flex Interface Customization - Themes, Styles, Skins
- Personal Branding Checklist
- Has the Technology Bounceback Begun?
- "Real-World Flex" by Adobe's Christophe Coenraets







































