Novell 旗下的 Mono 项目今日发布 2.0 版, 使在 Linux 平台上实现微软 .NET 框架项目获得巨大促进。Mono2.0 是 Novell 主持的一个开源项目,目标是在 Linux 平台实现微软的 .NET 框架。随着最新的 2.0版发布,二者之间的差距越来越小。
虽然 Mono 2.0 兼容微软 .NET 2.0,但和微软最新的 .NET 版本并不完全兼容。Mono 的努力非常重要,因为它的目标是在 Linux 上运行 .NET 程序。
Mono 项目主管 Miguel de Icaza 告诉 InternetNews.com,”我们正在某些地方赶上微软的 .NET。”
De Icaza 表示,Mono 项目的一直在做的是辨别开发者们用的是 .NET 的哪些部分。自 Mono 1.2.3 发布以来,MoMA (Mono 移植分析) 工具就出台,用来检查微软的 .NET 可执行程序,以便获得运行 .NET 所需要的所有东西。
得益于 MoMA 的统计结果,我们可以将人们最实用的东西优先对待。De Icaza 说,这意味着我们推迟了一些 API 的开发,比如,WPF 就不在我们目前的开发进度中。
WPF 是微软 .NET 3.0 的一部分,曾一度以代码名 Avalon 闻名。WPF 包含在 Windows Vista 和 Windows Server 2008 中,为开发者提供了一个图形子系统。 De Icaza 说,WPF 目前还没有被广泛采用。
IT 开发者和厂商之间的步调并不一致。他说,诚然,会有些早期采用者,他们喜欢最新的 API,但这些用户并不是 Mono 的用户,除此之外的普通开发者会和 Mono 保持一致。
除了不支持 WPF,Mono 2.0 还有其它一些问题。Novell 产品经理,Joseph Hill 表示,那些通过了 MoMA分析的程序中,只有50%才100%兼容 .NET。50% 足可以说明 Mono 的进展状况,Mono 前面的版本的这一比例仅为10%。.NET可以调用非托管代码以及老的函数库。这就带来一些麻烦,如果某个程序调用了老的函数库,而 Linux上没有这种库,移植这样的程序就会出现问题。另外,有些函数是只用于 Windows 平台的,这样的函数,Mono 也不会移植。
从技术角度看,Mono 2.0 的主要改进是完全支持 Windows Form,这项工作 Mono 花费了几年的工夫。
Mono 2.0 对我们非常重要,我们已经完全支持 .NET 2.0。Hill 说,我们的 2.0 版工作已经做了很久,现在已经完全支持桌面组件,Windows Form,我们已经达到我们所认为的完全支持。
Windows Form 是 Windows 桌面平台的一个图形 API,Hill 承认,将 Windows Form 完整集成到 Mono2.0 是一个艰巨的任务。可能其中最大组件就是内嵌的浏览器控件。Hill 解释,它是基于 Windows 平台的 IE 浏览器的,我们基于Firefox 重写了这个控件,但必须保留原来 IE 控件的一些行为。
Novell 从2001年开始从事 Mono 项目,2004年推出第一个 Beta 版 Mono 1.0。Mono 2.0 是一个重大的版本升级,下一个版本 Mono 2.2 将于今年11月发布。Mono 2.2 会推出新的代码生成引擎,会产生更优质的代码。会对 Windows Form 以及其它内容做进一步改进。