非Windows系统上的.NET框架

来源:互联网 发布:淘宝模版一键装修 编辑:程序博客网 时间:2024/06/15 16:02

    使用.NET框架编写的应用程序,会被编译为与处理器无关的MSIL形式,并籍由.NET框架类库与变化多端的特定操作系统隔离开来。这很像JAVA的世界;JAVA应用程序被编译为字节码(bytecode),并依赖JAVA标准库而不是直接调用特定操作系统。JAVA被清楚而明白地设计为可在多种处理器和操作系统上工作,.NET也是这样吗?

    从某个程度上说,答案是yes。微软自个儿已经提供了一个针对UNIX FreeBSD的框架基础移植版本,即所谓的共享源码CLI(Shared Source CLI)。理论上.NET框架的确可以成为广泛系统之间的跨平台解决方案。

    然而仍然存在一些技术方面的原因。尽管MSIL是平台中立,但.NET框架类库某些部分并非平台中立。例如企业服务(Enterprise Services)支持可伸缩、面向事务(transaction-oriented)的应用程序,而它乃是根植于名为COM+的早先的Windows技术。因此这一部分只能运行于COM+存在的地方。另外一部分类库也明显或多或少地泄漏了它的Windows血统。

    同样重要的是,微软必须努力让客户严肃地相信,微软将在非Windows系统上长期支持.NET框架。这个公司向来把所有焦点放在它自己的操作系统上,这已经成为其商业特点,同时也是它成功的首要因素。例如微软想让.NET框架真正成为JAVA的一个多平台竞争对手,技术上潜力正源于此。但至少到今天为止,.NET从根本上说还是一项Windows技术。

    事实上,作为现今最显著的.NET平台之非Windows实现,Mono项目,亦尚未博得更多的商业注意力。有些打算构建.NET应用程序的企业,曾寄希望于Mono提供所需的安全的非微软替代方案。然而在实践中,这个选项对于许多企业组织来说并不具备吸引力。不论你喜欢与否,在构建基于.NET框架的软件的人员中,绝大多数期望将其代码运行于某个版本的Windows之上。                                                   ——《Understanding .NET》