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

开放源代码协会通过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上花费了巨额的投资,自然也就很难容忍竞争行为。

时间: 2024-11-03 04:13:01

将.Net应用移植到Linux上来的Mono工程的相关文章

如何将OS/2应用程序移植到Linux操作系统

当从 OS/2 移植到 Linux 时,关键的编程问题是什么? 在转换到 Linux 之前注意一下,提早发现陷阱.LANDP 小组带领您了解 OS/2 和 Linux 之间的差别,以便您的移植工程才能更顺利地进行. 本文是 LAN Distributed Platform(LANDP)for Linux 小组把 LANDP 从 OS/2 移植到 Linux 时所遇到的问题的概述.本文对其他正在把 OS/2 应用程序移植到 Linux 的小组应该是有帮助的.当决定了要把 OS/2 版本的 LAND

详解如何将Unix应用程序移植到Linux系统

介绍 您知道 Linux 现在已是世界第二的服务器操作系统吗?今天,您的应用程序在 Linux 上运行吗?如果不是,那么本文将给您些提示和技巧,在您把应用程序移植到 Linux 的时候为您提供指导.本文依据的是软件工程师的经验,这些工程师来自独立软件供应商(Independent Software Vendors,ISV)和全世界的 IBM 实验室,他们参与了许多把应用程序移植到 Linux 的项目. 首先我们描述 Linux 的特征和它在开发和管理应用程序中的具体价值.接着,我们将回顾重要问题

zedboard-zedboaed板子移植linaro linux时出现了问题

问题描述 zedboaed板子移植linaro linux时出现了问题 其中,SD卡已经分区,第一部分装入了BOOT.BINdevicetree.dtb和zImage,第二部分已经装入了linaro linux的文件系统.板子的启动信息如下: U-Boot 2014.07 (Dec 25 2014 - 18:11:55) Board: Xilinx ZynqI2C: readyDRAM: ECC disabled 512 MiBMMC: zynq_sdhci: 0SF: Detected S25

opencl-openCL 移植到Linux 3.10

问题描述 openCL 移植到Linux 3.10 请教哪位大神有openCL的移植经验呢,Android4.3以后就没有openCL了,只有OpenGL库:请教下如何移植openCL呢 解决方案 没办法,要么限制程序在4.3以前运行,要么改写,用自己的代码实现.这个要想让4.3移植需要搞内核了,非常复杂. 解决方案二: Linux3.9.7 简单移植到 QT210

jeecms移植到linux系统的问题

问题描述 最近网站从运来的windowsserver2003上移植到linux系统上面.根据教程我安装了linux版的JDK和tomcat,并配置好了环境量,启动tomcat一切正常,然后我把打成*.war文件拷贝到相应目录并启动tomcat,进入首页却出现如下错误:HTTPStatus500---------------------------------------------------------------------------------typeExceptionreportmes

LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结

近准备把PDF.NET框架的开源项目"超市管理系统"移植到Linux上跑(演示地址:http://221.123.142.196),使用Jexus服务器和MySQL数据库,相对使用SQLite而言,用MySQL问题比较多,但最后还是一一解决了,先总结如下: 1,MySQL驱动: 有人说在mono 下跑MySQL需要老点的MySQL驱动,我实验发现跟此无关,我用的驱动 MySQL.Data.dll 版本是 6.3.6,在mono 3.0.3 下跑是没有问题的. 2,MySQL服务的版本:

Microsoft .NET Development Platform的Linux版本(Mono)出现

development Microsoft .NET development platform的Linux版本(Mono)出现. 一家叫Ximian的公司在2001-07-09宣布了Mono project启动,这将是一个Microsoft .NET development platform的Linux版本,整个Mono project主要是C#的编译器.CLR和JIT,并承诺包括一整套类库.从而使得开发.NET 应用可以在Windows和Mono支持的系统(Linux,Unix)中运行,更重要

1.将cocos2d-x项目移植到Linux环境下,将cocos2d-x项目移植到手机上

 1.将cocos2d-x相关的软件包拷贝到Linux下. 2对上面的安装包进行解压 unzipcocos2d-x-2.2.3.zip unzipcocos2d-x-3.2.zip 3执行cocos2dx-2.2.3/install-deps-linux.sh(执行这个命令需要有网络) 4安装QT,命令:sudo apt-get install qt-sdk 5在cocos2dx-2.2.3目录下,执行./make-all-linux-project.sh 6要让64位的linux能运行32

kettle工具从windows移植到linux上启动报错:\karaf/deploy does not exist

    kettle工具data-integration从windows上用rar压缩.zip后上传到linux后解压,然后运行spoon.sh,启动报错如下: [root@oratest data-integration]# ./spoon.sh  16:27:44,226 INFO  [KarafInstance]  ******************************************************************************* *** Kara