c#

位置:IT落伍者 >> c# >> 浏览文章

.NET跨平台的第一步


发布日期:2021年09月17日
 
.NET跨平台的第一步

NET跨平台的第一步

——Mono项目对C#的实现

曾有人说微软是一个制订标准的公司虽然微软从来不这样宣称自己但大家可以看到微软的很多产品已经成为事实上的标准在其C#和CLI(Common Language Infrastructure通用语言架构)被批准为ECMA(欧洲计算机制造协会)的标准之后更多的人开始确立这样的想法

经过标准化后的C#将可由任何厂商在任何平台上实现其开发工具及其支持软件可以说为C#的发展提供了强大的驱动力有意思的是Sun也曾打算向ECMA提交Java标准化申请但由于无法继续控制Java的标准化过程以及种种原因Sun最终还是撤销了这个提案自己的孩子终归是不敢放手C#成为标准会对Java造成影响吗?其他厂商的C#实现情况又如何?Mono开放源码项目的产生会让这些问题更为明朗吗?

实现Linux上的NET

尽管微软许诺NET的开放结构使其具有跨平台的使用能力但微软公司似乎并没有计划为其他非Windows操作系统平台提供使用NET的工具针对这种状况着名的Linux桌面环境GNOME开发商Ximian公司出于改进开发工具的需要开始启动一个名叫Mono的开放源码项目旨在开发Linux版的NET

Mono项目的发起人Miguel de Icaza在分析NET平台的时候曾表示这是一个非常棒的开发平台Ximian之所以发起Mono项目是希望升级它们的开发平台来创建其Evolution桌面应用程序虽然Mono项目的起因并不伟大但它带来的影响却足以使开放源码领域热闹很久

该项目的内容主要包括一个C#编译器与微软的CLI兼容的类库Linux版本的CLR(Common Language Runtime)编译器其中CLI组件将允许用C#编写的应用程序能够在像Linux等非Windows操作系统上运行就像Java虚拟机能让一个应用程序在不同的操作系统上运行一样Mono项目的倡导人Miguel de Icaza表示Mono项目将提供能够自由进行应用程序开发或提供Web服务的工具从而Linux用户也能够享受到NET平台的巨大好处

如果Mono能够创建完成一套基于这些标准的Linux开发工具集的话开发者将能够编写同时在Windows和Linux上运行的NET程序这些程序甚至还有可能在其他非Windows的操作系统上运行比如Unix

GNOME架构的组件可以很快地应用于实现NET类库而且最有意思的是通过现有GPL授权任何人都可以自由地扩展和升级这些技术虽然NET以前一直是开放源码的支持者所极力反对的但Mono项目的启动将为非Windows操作系统实现一个NET开发平台当然在实际的开发过程中Mono项目必须基于标准重新构造这些工具而不能查看微软的任何源代码

Mono掀起开放源码波澜

微软表示将C#和CLI标准化最终的目的还是为了让更多的人使用它毫无疑问如果Mono项目成功微软的NET将会越来越重要越来越普及但同时也会削弱微软对软件行业的控制这大概是更多Mono项目的支持者愿意看到的他们认为Mono项目对Linux以及像GNOME这样的技术来说是一个好机会通过Mono计划它们有可能得到那些目前仍然使用微软技术的大公司的认可而且理论上讲如果这些公司选择部署Linux可以避开微软的高额许可费用他们相信更多的程序员参与到Mono项目中一定会创造出一个比Windows上更好的NET实现如果真能这样那Mono将使微软不得不承认开放源码方式在开发和优化各种系统上所具有的威力

在Mono的拥护者描绘美好前景的同时也有人担心Mono项目会损害到Java和Linux因为它使GPL开发人员在Windows平台上发布他们的应用程序更为便捷同时他们还担心微软会在其HailStorm服务中建立硬连接从而迫使那些在Mono上进行开发的公司将其应用程序转移到Windows环境中去

Mono项目能否最终成功它到底会带来什么样的影响目前来说还是未知数不过有分析家指出NET还是初生技术任何对它的克隆也极有可能更不成熟不管怎样市场是最公平的好的东西自然会有更多的人使用而如果有人采用强制手段市场自然会做出公平的选择

上一篇:90%的重叠10%的较量 ——C#与Java述评

下一篇:快速生成源程序 轻松入门.net