The Best of Both Worlds: The Role of Mono in Multi-Platform Application Development
Have a Windows application, but want to port it to Linux? Mono lets you keep your source code and run on Linux, too. Mono founder Miguel de Icaza explains.
It is simply not practical for Mono to release new features shortly after Microsoft does. But the Mono project does strive to be as up-to-date as possible. It’s important that the community using Mono for product development and deployment can count on certain features being available at a given time, even if it’s not on the same timeframe as Microsoft’s schedules.
The Mono project has aready begun looking at upcoming technologies that fall under the umbrella that Microsoft has designated .NET 3.0. One subproject, Olive, is working on several of these technologies, including CardSpace, Windows Communication Foundation (formerly known as Indigo), and Windows Workflow Foundation. Other. NET 3.0 technologies, such as the Windows Presentation Foundation, a new API for creating desktop applications, are not on the current Mono roadmap.
A second subproject, Crimson, implements technologies that have not been addressed as ECMA/.NET standards by Microsoft, but are considered important for applications running on multiple platforms using Linux. This includes cryptography, the ability to communicate securely between components, applications, and people. Crimson is also working toward exposing the internals of Mono so that it can be embedded in other platforms and systems.
Given the inherent value of the. NET platform and its ability to execute multiple languages, there is no reason for the Mono project not to continue indefinitely. It serves an important purpose in the development community, providing a cross-platform strategy with a single language that is not available anywhere else today.
Code. NET; Run on Linux and Other Java-Enabled Platforms
Since 2003, Mainsoft has played an important role in the Mono project and the open source community. The company is a commercial enterprise whose Visual MainWin for J2EE product suite supports cross-development between Visual Studio and Java. These products work through the use of a plug-in to Visual Studio that lets developers write applications in C# or Visual Basic.NET and then cross-compile the Microsoft Intermediate Language (MSIL) code generated by the .NET Framework compilers into Java bytecode. Visual MainWin for J2EE also provides a Java-based implementation of the Mono open source. NET Framework runtime support classes. Moving between platforms is so seamless that the Visual Studio debugger can be used on runtime Java code; Visual MainWin converts the bytecode back to. NET IL to engage the debugger.
Grasshopper, the freely available edition of Visual MainWin for J2EE, lets developers work in a. NET language in Visual Studio, and run the resulting application using the Tomcat application server. Commercial versions of Visual MainWin provide for the ability to use commercial Java application servers such as IBM WebSphere and WebSphere Portal, Weblogic, and JBoss.
Developers have to be able to count on Mono being reliable, and on having the features required by applications when they require them. The Mono roadmap clearly spells out when developers can expect what features. This roadmap must be based in realistic expectations.
So Mono is both essential and realistic. While others have speculated on its utility or future, both are clear. It represents the most effective way of developing under. NET and porting the resulting application to Linux while maintaining a single C# code base.