For developers who have fallen in love with .Net/C#, but aren’t married to running their applications on Windows, the Mono Project aims to let Microsoft .Net-based apps run on Linux and Mac OS X, among several other platforms. Sponsored by Novell, the Mono Project has released Mono 2.0 of its cross-platform, open source .Net development framework.
Basically, Mono 2.0 lets users run both client and server applications on Linux, and helps developers figure out which changes they may need to make to their applications for .Net-to-Linux migrations.
“While Mono doesn’t have the same wide usage as Java or Windows-bound .Net, I do come across people who use it often however, like MindTouch, who builds products with Mono because they wanted to develop in .Net/C# but wanted to deploy on Linux,” Michael Cot, an industry analyst for RedMonk, told LinuxInsider.
“That scenario is what really appeals to people: Even though Mono is not a complete one-to-one match to .Net, the idea that you can deploy on Linux, Windows, and even Macs appeals to developers,” he added. It’s a good model for independent software vendors that want to sell on both platforms, he noted.
In addition, Mono 2.0 is great for developers who were trained in .Net programming but who want to extend those skills into organizations that want to leverage other operating systems.
While Mono 2.0 increases its compatibility with the .Net framework, bringing it closer to Microsoft’s .Net 3.5 than ever before, what’s missing is Windows Presentation Foundation, Windows Workflow Foundation, and Windows Communication Foundation.
On the plus side, Mono 2.0 brings significant performance improvements and an improved C# compiler, among dozens of other tweaks.
Novell’s Angle in All This
“Mono was originally started by Miguel de Icaza, currently vice president of development platforms at Novell and maintainer of the Mono project, while he was at Ximian,” Joseph Hill, product manager at Novell, told LinuxInsider. “At the time, the primary purpose of Mono was to enable Linux developers to be more productive by bringing C# to the platform. When Novell acquired Ximian, it continued to support the project for this reason, and Novell ships many applications on its Linux desktop today that were developed with Mono.
“Beyond promoting development on the Linux desktop, though, Novell’s support of Mono enables many customers and ISVs (independent software vendors) with both server and desktop applications that would previously only run on Windows, to choose Suse Linux Enterprise,” he added.
While Mono may appeal to smaller development organizations, it’s seeing rising interest in a variety of enterprises and organizations.
“Aside from the great Gtk# applications that are now available on the Linux platform, such as Banshee and GNOME Do, Mono is also seeing wide deployment on the server through ISVs such as MindTouch, which is built on Mono, and sees more than 90 percent of deployments of its Deki collaboration platform on Linux,” Hill said.
“Mono is also turning up in many other exciting and unexpected places, too. Recent successful deployments of Mono include Linden Lab’s server migration of their own in-house scripting language for their Second Life project (LSL) to Mono, as well as Unity3D’s use of Mono in their game engine and tools, which has Mono being deployed in their games on Nintendo Wii and the iPhone, as well as Windows, OS X and soon Linux,” he explained.
On the enterprise application development front, Jeffrey Hammond, a senior analyst of application development for Forrester Research, told LinuxInsider that he’s seeing interest in Mono, even from large app dev shops that plan to make continued investments in .Net and who would like to maximize that investment.
“I’m also seeing specific interest in Moonlight as a Linux target for Silverlight,” he added. “The biggest issue is that .Net is moving pretty fast, and potential adopters are a bit wary, wondering if Mono can keep up with the latest versions of .Net,” he said.
As a cloud services provider, we have a few customers successfully using Mono. In addition to the missing .Net components they had to deal with (which didn’t seem to bother them much), the bigger problem was that the database coding in their applications was tied to MSSQL and had to be converted to work with a Linux-based open-source database, such as PostgreSQL or MySQL. It is possible to write your code with a database abstraction layer, but if it was originally written to work with MSSQL, the conversion can be onerous. However, each of our customers found it was very worthwhile due to license savings as well as integration with other open-source software on the Linux platform.