Best of Both Worlds: Mono Brings .Net to Linux
Microsoft's .Net has driven the bulk of development on the Microsoft platform, and enterprises are looking to leverage .Net applications on other platforms. With Mono, you can have the best of both worlds and deploy your .Net Web-based applications on Linux.
After a period of maturation and acceptance lasting several years and three releases, Microsoft.NET development has become commonplace, and is widely used to develop custom applications within enterprises. Over the last year,. NET was responsible for the majority of new enterprise IT development done on the Microsoft platform, and a 2005 survey by Forrester found that 56 percent of IT respondents in the enterprise favor. NET for development. Additionally, commercial applications from third parties and ISVâ€™s written for the. NET Framework have become increasingly more commonplace.
Many development teams enjoy the productivity inherent in using Visual Studio and its wealth of tools for rapidly producing high-quality code. However, many teams would also like the ability to deploy on platforms other than Windows. In a recent FTP conference survey on Web application development and deployment, for example, developers overwhelmingly preferred working in Visual Studio, yet almost half wanted to deploy on multiple platforms, including platforms other than Windows.
Cross-platform application development is the role of the Mono Project (http://www.mono-project.com/), an open source implementation of the ECMA International standards that define the. NET platform. The standard defines an advanced runtime environment for running modern applications and a complete set of libraries for developing server and desktop applications. The Mono Project has two goals: to bring the same advanced features now available to Windows developers to Linux, Mac OS X, and other operating systems, and to assist Windows developers in bringing applications to Linux.
Novell is the main sponsor of the Mono project, supporting an open source model that enables other individuals and companies to contribute to Monoâ€™s development. Novell and Mainsoft cooperate in an extensive research and development effort to enable technologies developed by Microsoft to run on Linux, and in Mainsoftâ€™s case, the flagship Visual Studio development tool can be used to develop, debug, and deploy Web and server applications that run on Linux and other Java-enabled platforms. Novellâ€™s and Mainsoftâ€™s cooperation is an example of how well an open source model can work. The two companies have complementary research agendas and partner to deliver options for enterprises and ISVs to get their assets to run on multiple platforms.
Today the. NET/ECMA virtual machine (VM) is one of the most advanced VMs available, and the Mono Project helps to bring the benefits of this virtual machine to Linux. A Linux developer can leverage Visual Studio to create rich applications. Meanwhile, Mono allows the Windows developer to support more than one platform, instead of requiring a rewrite to support Linux.
Applications built with ASP.NET or Windows.Forms can be ported with little or no effort to Linux. In addition to supporting the usual. NET APIs, Mono also includes support and libraries that take advantage of Linux-specific, Unix- specific, or GNOME- specific features.
For example, a developer might benefit from sharing the C# or Visual Basic.NET internals of his application across platforms, but port the GUIs to native Linux libraries using Gtk#. In doing so, he obtains the benefits of the rich. NET VM and all of the class libraries available on Linux.