Open-Source .Net Mono Bears First Fruit

A year into its development, the effort to create an open-source version of Microsoft Corp.'s .Net platform is beginning to bear fruit.

A year into its development, the effort to create an open-source version of Microsoft Corp.s .Net platform is beginning to bear fruit.

The Mono Project has delivered 520,000 lines of code, including a fast x86 run-time engine, a self-hosting C# compiler that can compile its class libraries and better development tools for the GNOME (GNU Network Object Model Environment) open-source desktop environment, according to the initiatives technical leader, Miguel de Icaza.

In addition, developers now can use Linux to develop and run applications based on a number of .Net specifications, including ASP.Net and ADO.Net, said de Icaza, chief technology officer of Ximian Inc., a Boston-based Linux distributor and an open-source systems developer. ASP.Net lets developers create Web-based methods of accessing legacy and enterprise data. ADO.Net is a framework for accessing back-end databases.

If successful, Mono will give open-source developers the functionality of .Net on Linux and Unix systems without the costs of moving to the Microsoft platform.

De Icaza is scheduled to demonstrate Mono Project components at the OReilly Open Source Convention this week in San Diego.

"Mono works on Windows and on Linux," de Icaza said. "That is an interesting thing for people because you can not only develop applications in .Net and run them directly on Mono, but you can actually try them on Windows and with the Mono run-time to see if there are any problems."

"If Linux supports C# completely so that applications written using the Windows Forms namespace are supported ... then companies that are currently solely developing for Windows can develop for the Linux desktop," said Craig Williams, a developer with IP80 Ltd., a Sutton, England, software development and consulting company. "I know many developers who can only work with [Microsoft who] would love to develop cross-platform like this."

Jason Melvin, a Web development specialist with Verizon Communications Inc., in Tampa, Fla., agreed.

"C# functionality is probably the most important milestone in the Mono Project, since I am in a wait-and-see mode for training now," Melvin said. "Microsoft has been very good for me and my career, but with the way things are shaping up with licensing and with copy protection issues, I am truly at an impasse until I see where Mono is going."

With GNOME development tools, Mono engineers have created GTK# (pronounced "GTK sharp"), which enables developers to use C# to create streamlined GNOME applications, and Vorbis#, which enables decoding of specific streaming files within the GNOME environment. While not directly related to .Net, the initiatives will enable GNOME developers to more efficiently build better applications.

De Icaza said that while some pieces of the project are complete, others will be finished by the end of the year. For example, project engineers are about 30 percent done with the ASP.Net capabilities.

"The areas missing are things like session state preservation, connecting to a real database for saving state instead of the current support we have of allowing third-party controls to run," de Icaza said.

Ultimately, the project will enable developers to support Web services, he said. Until now, project coordinators didnt have the infrastructure in place. Engineers have developed one of two SOAP (Simple Object Access Protocol) implementations in .Net. The project has the remoting version of SOAP, but most people are using the ASP.Net version with Visual Studio .Net to develop Web services, de Icaza said. Project engineers are considering an ASP.Net-aware version of Web services.