| Close Window |
In part because of MoMA, the Mono analyzer, there were 1,907 new methods implemented in this release, System.Data is 99% compatible with .NET 2.0, and about 150 bugs were fixed in System.Windows.Forms alone.
This was the first version released after Novell hired a full-time QA person for Mono, and Mono set up a new release procedure. Some of the tasks of the new QA person include prioritizing new bugs as they are added to the bugbase and making sure old bugs continue to get worked on and don't just fade from memory. Release preview versions now receive wider and more rigorous testing and every release is getting the kind of testing that used to be applied only to major releases. This is another sign of how Mono is maturing as it gains feature parity with the Microsoft implementation.
This version supports the IronPython 2.0 preview release and the new Dynamic Language Runtime from Microsoft. In addition to the previously included C# 3.0 features, extension methods, lambdas, and anonymous method generic type inference, this version also includes variable type inference (the "var" keyword), anonymous types, array type inference, object initialization, collection initialization, and automatic properties. LINQ and LINQ support in System.Core are currently under development. This leaves Mono C# 3.0 ready except for LINQ, which is being worked on. There are, of course, the libraries that still need to be completed, then on to 3.5 (and 2.1/Silverlight, which includes functions 3.5 does not).
The runtime received about a half-dozen performance enhancements. An IL verifier has been added to Mono, which will mainly be used to support Silverlight/Moonlight. CoreLib now has full support for RegionInfo along with more performance enhancements.
Using SqlBulkCopy for importing bulk SQL Server data is now supported. System.Windows.Forms now supports MaskedTextBox and BindingNavigator, and many controls are now .NET 2.0 complete. AutoSize is supported, and ToolStripPainter and ToolStripSystemRenderer are also done.
System.Drawing has been updated to use Cairo 1.4.6; Libgdiplus header, types, and enums have been updated to be closer to the Microsoft GDI+ library. Although not the original goal, this makes is easier to use Libgdiplus from C++. Support has been added for 2bpp PNG, interlaced GIF bitmaps, ImageAttributes now supports ColorMatrixFlag and GrayColorMatrix, GdipDrawImagePointsRect functions are implemented, and a number of printing bugs have been fixed.
The new VB compiler supports late binding, reports line numbers in the debugger, and, like all parts of Mono, includes a number of bug fixes.
Security is now focusing on the IL verifier that will be needed for Moonlight's support for Silverlight.
Odds and Ends
NPlot is one of the best open source charting/graphing controls and it's competitive with commercial controls. Since I last wrote on that subject, there have been a couple of documents written about it. One is a chapter for the O'Reilly book - Windows Developer Power Tools: Turbocharge Windows Development with More Than 140 Free and Open Source Tools (ISBN 978-0596527549) - which can be read online at http://netcontrols.org/nplot/downloads/nplot_introduction.pdf. The other is a tutorial on using NPlot on the APS.NET Web pages at http://aspnet.4guysfromrolla.com/articles/072507-1.aspx.
SharpDevelop 2.2.1, the planned bug fix update to version 2.2, is available at www.icsharpcode.net/OpenSource/SD/Download/#SharpDevelop22, and includes support for newer versions of NUnit (2.4.2) and SharpDevelop Reports (2.2.0.235).
NUnit has a table showing its current cross-platform status including Mono on Windows and Linux at http://nunit.com/index.php?p=platformSupport.
The current version of NUnit is 2.4.3. The 2.5.x release will probably be the end of the 2.x versions, and the planning for version 3.0 has already started.
FileHelpers is an open source library for importing and exporting data to fixed length or delimited flat files. It also works with streams, data links, and strings; it supports null and generic types, and generates events as it parses files. To use FileHelpers, create a class with the data types matching the way you want the data read, then the FilerHelpers engine can read or write the data with a single line of code. You can read more about the library and project at www.filehelpers.com/, or see an example of how easy it is to use at www.filehelpers.com/example_easy.html. There are two main coders on the project and they could use some help. (Although there have been a number of developers who have contributed, click on the "contributors and credits" menu at the top of the home page for a complete list.) This is a nice polished project, but there are a lot of bells and whistles that could be added. It looks like a fun project to work on, and they have a task list that ranges from simple beginner tasks to more complex tasks for more advanced programmers. You can see the task list at www.filehelpers.com/howhelp.html, and get information on volunteering by clicking on the "forums" menus at the top of the home page. The project has been around for a few years; they took second place in the 2005 LarkWare software contest; see the details at www.larkware.com/contests/Contest2005Winners.html.
© 2008 SYS-CON Media Inc.