网站首页/技术开发列表/内容

将.Net应用移植到Linux上来的Mono工程

技术开发2024-04-10阅读
开放源代码协会通过Linux软件开发公司Ximian开始了一个旨在将微软.Net平台移植到Linux上来的项目。这个叫做Mono工程的项目包括创建一个开发平台允许人们为基于Linux和基于Windows系统的.Net开发应用程序。据Ximian公司的首席技术官员Miguel de Icaza说Mono项目的起因是GNOME社团特别是Ximain公司对于一个改进的开发工具的需要。

但是Mono项目的影响确是更加深远的,因为这些开发工具是基于CLI(通用语言架构)和微软提交给欧洲计算机制造协会(ECMA)的C#实现标准的。如果Mono能够完成基于这些标准创建一套Linux开发工具集的目标的话,开发者将能够编写同时在Windows和Linux上运行的.Net程序,这些程序甚至还可能在其它非Windows的操作系统上运行,比方Unix。

除了实际的开发过程,Mono项目的工具必须在开放源代码社团的内部完成而不能违反微软的知识产权专利--这实际上意味着开发者们必须基于标准重新构造这些工具而不能查看微软的任何源代码。

Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库。 CLI是包含了类加载器的虚拟机,实时的编译器,和一个运行时环境的垃圾收集器。CLI这个组件将允许用C#编写的应用程序能够在象Linux这样的非Windows操作系统上运行。这与Java世界中Java虚拟机能够让一个应用程序在不同的操作系统上运行是类似的。

Mono项目的类库能够让应用程序完成核心的诸如XML处理,文件输入输出,和连接网络之类的任务。它将会和微软的CLI兼容(与微软在.Net framework中发布的东西紧密的配套),还有一点就是将由开放源代码团体编写的额外的类库也将和CLI兼容。

Ximian公司的de Icaza希望在年底到达项目的一个里程碑,这时编译器将能够编译类库了。图形用户界面组件--创建GUI程序所需的类库--将在明年中完成。

“我们在这个方面工作的原因是希望升级我们的开发平台来创建我们的Evolution桌面应用程序,”de Icazo说。Evolution是Ximian公司的电子邮件客户端及个人和工作组信息管理程序。“当我们看见.Net framework的时候,我们觉得这些就是我们将用来开发我们下一代产品要使用的工具,”他说。

Ximian并不将Mono和它自己看作是给Linux开发者一种途径在可用的开发工具方面赶上Windows。其实,Linux开发者将更喜欢用他们目前使用的工具来编写的编译应用程序。Ximian 将另一个开放源代码项目,SharpDevelop看作是用来提供与微软Visual Studio .Net类似的集成开发环境的一种途径。

通过以开放源代码的方式开发Mono,这个项目包含了许多对开发过程拥有广泛兴趣的人们。虽然Ximian可能希望找一些改进的开发工具来加速它的应用程序的开发过程,但其它的开发者可能是希望找到能够让他们在Windows上编写程序然后在Linux系统上运行它们的开发工具。

其中的一个大问题是如何避免微软的知识产权保护。“我们避免知识产权保护的方法是坚持非研究性的主题并使用现有的技术实现其功能,”de Icaza说。例如,Mono JIT编译器没有使用任何先进的JIT编译器技术。相反Mono的版本是基于老的JIT技术的。

De Icaza还声称Mono必须“着眼大处”还不仅仅是去年ECMA规定了些什么。也就是说,Ximian计划参与标准的制定过程并创建类库来提高.Net framework的薄弱之处,比方说电子邮件管理。

据Giga Information Group的副分析师Stacey Quandt称,微软不太可能支持Mono因为其授权是与GNU 通用公众证书为C#的授权和GNU 弱公众证书为类库和运行库的授权联系在一起的。

但即使微软不支持Mono,Mono的存在也证实了微软对于.Net能够移植到其它平台的声明是正确的。

Quandt说面向更广泛的开发团体是Mono面临的另一个挑战。例如IBM和Sun都在Java上花费了巨额的投资,自然也就很难容忍竞争行为。
相关阅读