Mono
The Code Project Hosts "The Race to Linux"
System.Windows.Forms gets closer to completion
Dec. 20, 2005 11:00 AM
The Race to Linux
The Code Project has sponsored "The Race to Linux," a contest to see how fast code could be converted from Windows to Linux. The race was broken into three parts. Each part required participants to convert one of the Microsoft ASP.NET starter kits to Linux using Mono, Grasshopper (see Monkey Business in .NETDJ Vol: 3, iss: 7), PHP, or other technologies of their choosing. At the start of each race, the Code Project would announce the starter kit to convert, and the first person to get the kit running under Linux won an Xbox360 and a game. In addition to the three winners of each contest, Mainsoft gave away two additional Xbox360s to the best starter kits converted using Grasshopper. Developers had the option of converting the existing code or rewriting the code from scratch. The ported program had to look very similar to the original, and pass a list of functional tests.
The first race consisted of converting the Issue Tracker Starter Kit. Brian Hendrickson rewrote it in 23 hours using PHP and PostgreSQL; Brian says the functionality was completed quickly, but because it was a rewrite, it took more effort to get the visual part to look like the original. The second race was to convert the Time Tracker Starter Kit. Abishek Bellamkonda converted it using Grasshopper and Tomcat. Abishek was able to port both the Time Tracker Starter Kit and the Report Starter Kits in fewer than four hours; he said that other than a few hiccups, Grasshopper did most of the work for him. "It was almost instant," he remarked. The final race required converting the Report Starter Kit. Juan Ignacio de Paula won this race by using Mono and the Firebird database. Juan says Mono was so good that with a few exceptions, he did not even need to touch the original ASP.NET code to move it to Linux under Mono. Mark Cafazzo and Rodriguez Esparza won the Xbox360s for their Grasshopper submissions. Many people were surprised at how fast and easy it was to move ASP.NET-based applications from Windows to Linux; others were surprised at how many different ways there were to easily do the conversion. Mark writes about converting the Time Tracker Starter Kit at www.codeproject.com/useritems/MarksDotNetPortToLinux.asp, and Rodriguez writes about converting the Report Starter Kit at www.codeproject.com/useritems/osohare_reportsstarterkit.asp.
Novell Offers Mono Training
Want to learn Mono from the pros? Novell now offers a three-day, instructor-led class on Mono. The first day gives an overview of Mono, including installation, an introduction to the most popular Mono .NET languages - C#, VB.NET, Java, and the Boo scripting language - and Mono tools, including Monodoc, the disassembler and assembler, the Monodevelop IDE, monop, and gacutil. The day finishes with a lesson on GUI development using GTK# that builds a simple Web browser. The second day covers ASP.NET, ADO.NET, Web services, and ends with a session on debugging an ASP.NET and ADO.NET application. The last day covers LDAP in some detail. More information can be found at http://developer.novell.com/wiki/index.php/Developing_with_Mono. Note that this is a fee-based course available from local Novell training partners.
Novell has also opened up SUSE Linux by creating the openSUSE project. You can read about it at http://ajax.schwarz-interactive.de/csharpsample/default.aspx or view the project's home page at www.opensuse.org. The openSUSE Project is similar to the Red Hat Fedora Project. Its main points are that it is free, it gets frequent releases, and most important, it comes with a full set of build tools that includes all of the third-party software included in the release.
Odds and Ends
An open source Ajax.NET library has been released by SediSys at http://weblogs.asp.net/mschwarz/archive/2005/08/11/422293.aspx. AJAX (asynchronous JavaScript and XML) creates interactive Web pages by using JavaScript to manipulate XML files via DOM. SediSys uses its own license; although the license is close to the GPL license and has been submitted to the OSI for approval, you should review it before using this version of Ajax.NET in your product. Michael Schwarz has written a demo Web page showing the power of Ajax.NET at http://ajax.schwarz-interactive.de/csharpsample/default.aspx.
SharpDevelop has released another build moving towards the 1.1 release. This build has SharpReport separated out as a library, a new NAnt template, more IDE settings are saved, and code conversion has been improved.
The System.Windows.Forms countdown continues. Last month 51 controls were complete, 14 were being worked on, and 4 were waiting for someone to start development; the count is now 58 complete, 8 being developed, and only 3 not yet started. The HelpProvider was started and marked as completed, but it currently only supports ToolTip help; this leaves just the three print dialog boxes as the only controls not completed or under development.
About Dennis HayesDennis 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.