Mono 2.0, an open-source runtime enabling .Net-based applications to run on Linux, Mac OS X, and Unix, is being released Monday, featuring capabilities for a number of .Net technologies.
Considered a major upgrade, the open source Mono 2.0 runtime leverages Microsoft's .Net Framework 2.0 programming model. With Mono, developers can build desktop and server applications using Microsoft-based environments and deploy them across multiple platforms, including Windows. Novell is leading the Mono effort.
"The existing apps you build on Windows, you can now run those applications on Linux or MacOS 10. Different people have different reasons for doing so," such as platform consolidation, said Miguel de Icaza, vice president of developer platforms at Novell and Mono project maintainer.
Mono 2.0 supports the C# 3.0 language and LINQ (Language Integrated Query) for querying of data across databases, objects, and XML content, de Icaza said. Also, users can move over server applications built for .Net and client applications built with Windows Forms.
Version 2.0 of Mono, however, lacks support for key .Net 3.0 and .Net 3.5 APIs, specifically Windows Communication Foundation, Windows Workflow Foundation, and Windows Presentation Foundation. These are not currently supported because they were not amongst the most requested technologies sought by early users of Mono, de Icaza said.
"We don't support them because we haven't developed those pieces yet," he said. Work on WCF support is planned for next year.
Also featured in Mono 2.0 is MoMA (Mono Migration Analyzer), a tool to assess the readiness of Linux environments for migration of .Net applications.
Microsoft's reaction to Mono has been mixed, according to de Icaza. "I guess it depends on who you ask. In some cases, of course, they would rather have people stay on Windows," he said. Microsoft is working with de Icaza and Novell on Moonlight, which will enable applications built for Microsoft's Silverlight browser plug-in to run on Linux. Moonlight 1.0, a more complete release than what has been available, is set to be released by the end of this month.
Mono is intended to help more applications be moved to Linux and help developers reach a larger market. "From our position, we want more developers to be able to start deploying their third-party applications on Linux. We want to enrich the Linux ecosystem," de Icaza said.
He estimated that 45 percent of applications will run on Mono 2.0 out of the box while 18 percent will require developers to spend a couple of weeks to make some changes due to operating system differences. About 20 percent will require significant work, taking about three to six months, if the application is tightly integrated with Windows, de Icaza said.
Current Mono user Mindtouch, maker of the Deki collaboration platform, opted for Mono because it sought to provide cross-platform solutions, said Aaron Fulkerson, Mindtouch founder and CEO.
"I think Mono is fantastic for us," he said. Mindtouch founders and many of the company's developers had worked at Microsoft and sought to leverage Windows-based development skills, he said. But .Net lacked platform independence.
"We very seriously considered going with Java and then [took] a good hard look at Mono," Fulkerson said. Mono was determined to be a "sufficiently mature technology to build on," he said.
"In fact, we developed our product and deployed solely on Mono and Linux up until this month," just now adding support for Windows, said Fulkerson.
The Mono 2.0 runtime is offered under the LGPL, while class libraries and compilers are available via the MIT X11 license.
Mono was built using Microsoft documentation pertaining to the .Net engine and languages, which are ISO standards, de Icaza said. Work on Mono 2.0 has been going on for about two-and-a-half years. The Mono project itself was begun in 2001.