C++开发博客CSDN

C#程序跨平台?

C#程序是以.NET平台为目标的,目前可以在所有的支持.NET的平台上运行。从理论上讲c#和.Net 程序是跨平台的,C#作为一种编程语言,早在2003年就成为ISO的标准之一。C#和Java语言理论上都是针对各自的虚拟机开发的,而虚拟机(微软的虚拟机叫.Net Framework, Sun的虚拟机叫JRE)不是跨平台的,微软公司似乎并没有计划为其他非Windows操作系统平台,如Linux,苹果,Unix等提供.net Framework。而不像Sun公司开发Windows,Linux以及手机版等多个版本JRE(Java Run Enviroment). 针对这种状况,2001年7月,著名的Linux桌面环境GNOME开发商Ximian公司(2003年被Novell公司收购)出于改进开发工具的需要,开始启动一个名叫Mono的开放源码项目,旨在开发Linux版的.NET。 该项目的内容主要包括一个C#编译器,与微软的CLI兼容的类库、Linux版本的CLR(Common Language Runtime)编译器。其中CLI组件将允许用C#编写的应用程序能够在像Linux等非Windows操作系统上运行,就像Java虚拟机能让一个应用程序在不同的操作系统上运行一样。Mono项目的倡导人Miguel de Icaza表示:“Mono项目将提供能够自由进行应用程序开发或提供Web服务的工具,从而Linux用户也能够享受到.NET平台的巨大好处。” 目前,Linux上的Mono项目只实现了.Net Framework 3.5的规范,远远落后于Windows平台。
所以问题就是除了windows以外还有多少平台将会提供.NET的支持?虽然.NET以前一直是开放源码的支持者所极力反对的,但Mono项目的启动将为非Windows操作系统实现一个.NET开发平台。当然,在实际的开发过程中,Mono项目必须基于标准重新构造这些工具而不能查看微软的任何源代码。Mono项目GNOME架构的组件可以很快地应用于实现.NET类库,通过现有GPL授权,任何人都可以自由地扩展和升级这些技术。如果Mono项目成功,微软的.NET将会越来越重要、越来越普及。Mono项目能否最终成功,它到底会带来什么样的影响,目前来说还是未知数。不过有分析家指出.NET还是初生技术,任何对它的克隆也极有可能更不成熟。不管怎样,市场是最公平的,好的东西自然会有更多的人使用,而如果有人采用强制手段,市场自然会做出公平的选择。
  引用一句Mono的话:

Mono, the open source development platform based on the .NET framework, allows developers to build Linux and cross-platform applications with improved developer productivity. Mono's .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure .Sponsored by Novell, the Mono project has an active and enthusiastic contributing community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications. It is positioned to become the leading choice for development of Linux applications.

posted @ 2011-01-11 17:13  纳凉亭子  阅读(1547)  评论(1编辑  收藏  举报