微软开发框架的开源版本现在能够在更多现有.NET应用程序上运行。Mono项目宣布发布Mono 1.2版——微软.NET框架的开源版本。该项目由Novell支持,允许为Windows框架编写的应用程序在Linux和其它非微软平台上运行。最新版本全面支持.NET 1.1,并部分与.NET 2.0兼容,包括支持Windows Forms。
Mono按ECMA标准ECMA-335定义的标准执行.NET,ECMA-335指定通用语言基础构架(Common Language Infrastructure)、一个C#编译器和与微软相似的类库,虽然这些并非ECMA标准的工作范围。Mono可在Linux、Mac OS X、Solaris和Windows上运行,并被第三方应用到其它平台上,包括Symbian OS。
Mono项目由Miguel de Icaza在Ximian工作时开发,以其作为快速建立Linux应用程序的一种方法,Ximian于2003年被Novell收购。Mono可通过GPL或一个Novell的所有权许可使用。Mono包含在最近与微软签订的专利协议之中,尽管这仅对Novell客户而非所有Mono用户适用。Novell指出Mono的代码没有侵犯微软的任何专利,因此该协议对于该开源框架的用户没有影响。
De Icaza在微软的TechEd Developers大会上发表了演讲,他告诉Builder UK说,虽然微软最近发布了.NET framework 3.0,但Mono仅支持2.0的部分功能并不妨碍大多数人应用它。“现有.NET应用程序的绝大多数功能还保持在1.0的水平,”他说。
虽然de Icaza最初开发Mono的目的是为了建立GUI应用程序,但自从被Novell收购以来,它在服务器开发环境应用方面的适用性有了显著的提高。“今天,我们已经改善我们在ADO、ASP.NET方面的性能;我们建立了开发者需要的工具。现在我们拥有评测器、调试器、以及文本资料——所有,今天它已成为一种更加全面的工具,”他说。
有了Mono 1.2,希望应用Linux、Unix和Mac OS X的Windows开发者再也不必设法处理不合规格的设备了。“这就像从一间棚屋搬到一幢房子里面。但它还不是一座宫殿,但已是一幢适于居住的房子,并且我们已经为下一个版本做出了规划,” de Icaza解释道。
微软,它的工具允许你在J2EE系统上运行为.NET编写的应用程序,一直是该项目的支持者。微软产品开发副总裁Philippe Cohen告诉Builder UK说,Mono能够大大提高跨平台应用程序开发效率。“.NET开发技术如此优良高效,它一定会成为一种跨平台开发技术。”Mono的开源、协作本质与微软自身开发跨平台工具的计划相一致。
“最初,我们自己开始对Visual Studio进行扩张,希望将其发展成为一种跨平台工具。在2002年,我们开始开发我们产品的.NET版本,然后我们发现在市场上有一个以Mono形式出现的新产品,于是我们意识到建立跨平台.NET的正确方法应该是与那些利益一致的厂商合作,”Cohen表示。
事实上,.NET 方面最受欢迎的 GUI 工具集很大程度上不能算是 Microsoft 自己的 WinForms,而是 GTK+。由于 Gtk# 绑定集随缺省 Mono 分发版本一起提供,而且 GTK+ 本身的质量出众,因此 GTK+ 快速成为希望使用新 .NET 平台开发桌面的程序员的新宠。另外,由于 .NET 的效率非常高,因此很多新应用程序都采用 C# 和 GTK+ 进行编写,包括一些影响很大的应用程序,如 Beagle 项目(该项目允许快速有效地对计算机上存储的所有信息进行搜索)。