Welcome!

Linux Authors: Michael Sheehan, Lavenya Dilip, Ian Thain, Bruce Armstrong, Ellen Rubin

Related Topics: .NET

.NET: Article

Mono Releases 1.0.4 and 1.1.2, Portable .NET Releases 0.6.10

New open source .NET book out

Portable.NET
Portable.NET has released version 0.6.10. It has been three months since the release of 0.6.8. Support for several OSs, including Solaris, HP-UX, BeOS, and 64-bit CPUs, has improved, and a new CPU, CRIS (an embedded network CPU), is now supported. Threading, sockets, marshalling, and XML navigation have improved. XSharp has seen a lot of work, and JScript now has better sample programs and improved math functions.

Much work was done on adding .NET 2.0 functions, including security/cryptography and new classes for System.Windows.Forms, especially VisualStyles. The current version also saw advances in DockingLayout and TextBox, and general fixes throughout the namespace.

.NET version 2.0 will have support for serial ports, but this support is now available from both Portable.NET and Mono. This is great for programmers such as myself, who need to interface with RS-232-based instrumentation.

For the full scoop and downloads, go to the DotGNU portal I discussed last month, at http://getdotgnu.com/.

Mono
Mono has also released new versions. Version 1.0.4 is another production-quality update for version 1.0, and version 1.1.2 is the experimental version with the latest improvements. Because the 1.0.x branch of Mono is meant to maintain the version 1.0 release, updates to it are mostly bug fixes and rarely add new features. This release includes a version of libgdiplus that does not rely on internal Cairo functions, thereby making Mono less sensitive to the version of Cairo installed. Improvements in GTK# were also included. Many bugs in AppDomain and threading were fixed, and SPARC and PowerPC support was improved. ASP.NET and ADO.NET both saw improvements, as did XML, CodeDom, and System.Net. The XSP application server and mod_mono (Apache interface) were upgraded, and XSP got a new sample Basic application (Hangman). Finally, the old documentation was replaced with the latest Monkeyguide.

Although version 1.1.2 is the development version of Mono, this version consists mostly of bug fixes and performance tuning. I think this reflects the maturation of project Mono; most new Mono features are parts of the Basic compiler, SWF, or .NET version 2.0 features.

Some optimizations from the C# compiler have been ported to the Mono Basic compiler, making some compiles as much as 30 times faster. System.Web was also optimized and now allows up to eight times as many requests per second to be handled. JIT ports for PPC, SPARC, AMD64, and S390 were updated. XQuery was moved to its own assembly, and JScript now supports late binding.

Support for .NET 2.0 continues to improve. This version has improved support for generics (motivated in part by the C5 generic classes mentioned in my November column). The C# compiler now includes support for anonymous methods, which greatly simplifies writing code to support delegates.

More on anonymous methods can be found at http://msdn2.microsoft.com/library/0yw3tz5k.aspx.

Mono 1.1.2 supports the following C# 2.0 features: anonymous methods, iterators, partial classes, static classes, and in-line warning control. The class libraries also support an increasing number of version 2.0 functions. Generics are supported by the gmcs branch of the compiler. For those keeping count, the still-missing C# 2.0 functions are nullable type, namespace alias qualifier, external assembly alias, property accessor accessibility, covariance and contravariance, fixed-size buffers, and friend assemblies.

New Book
Apress has released a book by M.J. Easton and Jason King, Cross-Platform .NET Development (ISBN 1-59059-330-8). In contrast to the O?Reilly book Mono: A Developers Notebook, which concentrates on short how-to examples for Mono, Cross-Platform .NET Development digs deeper into both Mono and Portable.NET. It compares their similarities and differences, both with respect to one another and with respect to the commercial Microsoft implementation, including analysis of most and least compatible namespaces. The book looks at basic .NET, including cross-platform pitfalls, remoting, database connections, using native code, and the various graphics options (SWF, GTK#, QT#, and VG.NET) and their implementations. The book also demonstrates how to interoperate with Java, covers testing using NUnit, and touches on UML. For $49.99 (U.S.), this 460-page book is a must-have for anyone with an interest in open source .NET implementations and applications.

Odds and Ends
Luis Sanchez has written an API for generating .NET intermediate code. It is higher level than CIL, but lower level than C#, which means it?s just right for things such as XML serialization (http://primates.ximian.com/~lluis/blog/pivot/entry.php?id=34).

Novell has released a new version of the Novell Linux Desktop. If you use Linux, the details are at www.novell.com/products/desktop/index.html?sourceidint=homepage_announcement1

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.