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