1Mono介绍本章内容 ü Mono项目的历史ü Mono项目当前的情况ü Mono的意义ü Mono架构的一些知识 1.1 C#和Mono项目的历史时间应该追溯到公元1998年的晚些时候,或者再往前些,在1996年,比尔盖茨如愿以偿的挖到了赫赫有名的编译器大师Anders Hejlsberg。Anders Hejlsberg曾在丹麦科技大学学习工程学,他编写的Pascal编译器的核心,1981年将Pascal编译器卖给了Borland,并加入Borland公司,那时的Borland公司还是一个名不见经传的小公司。Anders Hejlsberg在Borland主持开发了Turbo Pascal,Turbo Pascal获得一直好评,Anders Hejlsberg并未止步不前,他将Turbo Pascal编程一种面向对象的、拥有可视化环境和卓越的数据库访问特性的应用程序开发语言-Delphi。Java出现了。Anders Hejlsberg在Borland一直郁郁不得志,据Borland内部人士讲Anders Hejlsberg认为自己不再是不可或缺的人。比尔盖茨慧眼识才,三故茅庐,把Anders Hejlsberg请到了微软。最开始微软许以重金,但Anders Hejlsberg不为所动,当清楚Anders Hejlsberg的想法后,比尔盖茨答应给他一个宽松的环境,既领导Visual J++小组,并提供薪水和红利奖金300万美元。这样Borland这个大牛孵化器为微软输送了一位超级大牛。好景不长,SUN公司认为微软破坏了java的跨平台性,微软太有侵略性了,很快微软就会利用它的VJ++将java开发人员拉拢到它的周围,而它的VJ++以及WFC的很多特性明显是为了Windows平台设计。SUN中止了对微软的java授权。 1998年的时候,危机感促使微软决心开发一个新的平台。这是一件伟大而艰巨的任务,可以说对微软的未来有举足轻重的意义,谁来承担此重任并成为开发C#的首席设计师呢?微软选择了Anders Hejlsberg。 在开发领域,人们很少有对一种还处于beta版的软件抱有那么大的热情,当初我下载了vs studio.net 的beta1、beta2的时候,完全被它折服了,并开始在公司中利用它开发OA系统。 微软的.NET可以说是跨平台的,但这里的平台指Windows CE,用在PDA等设备上。微软也提供了一个供FreeBSD上的.NET平台源代码。从.NET的类库上和编译器的编译参数上看,微软的.NET是可以做到跨平台的。但比尔盖茨或许天生有种侵略的思想,他不会允许发布一个运行在Linux的平台,在他的理念里,开发人员只能生活在他所掌控的Windows的世界里,整个世界都要源源不断的往他的口袋里塞钱,他不会把大批的开发人员吸引到一个对他日益危险的敌人(Linux)上。从收购Virtual PC就可以看出这一点,自从微软收购了Virtual PC,以后发布的版本里面已经将Linux的选项去除了(当然,现在的新的版本中又增加了,再牛也拗过市场啊),现在很多开发人员选择了vmware做虚拟机。 开源阵营里拥有众多的超级大牛。这群抱有极大的热情和拥有聪明大脑的大牛们创造出了无数的令人称道的软件。既然微软不提供Linux下的.NET平台的实现,那么我们就自己实现它。2001年7月Ximian的Miguel de Icaza负责开发Mono项目,用以实现跨平台的.NET。现在GNU也拥有了一个项目Portable.net,也是一种跨平台的.NET实现。 说起Miguel de Icaza,你也许有些陌生,但是说道GNOME,Linuxer没有不知道的,Miguel de Icaza正是GNOME的发起人。1996年(这也是微软挖Anders Hejlsberg的那一年,也正处于自由软件发展的年代),墨西哥籍青年Miguel de Icaza正在为Linux/SGI工作。他和他的在Red Hat工作的朋友Elliot Lee时常讨论自由软件的话题。这两个人都不约而同地感觉到,相对而言,自由软件体系缺乏很多技术元素,使得其在很多领域落在后面。当时,KDE项目进展得十分顺利,并且功能已经相对完善。Icaza对此感到十分高兴,并写信给他们建议把KDE的代码纳入Red Hat发行版,还曾致信给Richard Stallman(GNU组织者),让他了解有这样一个有趣的项目存在(KDE当时是基于GNU GPL的项目)。但Icaza很快得到回信:Qt是商业软件,不允许用户修改或发行修改后的拷贝,因而违反了GPL的相关条例;而KDE对Qt的依赖性导致其中的部分程序是非自由软件。出于对自由软件的热爱,Icaza也曾与Qt的所有者Troll Tech取得联系,希望可以修改Qt的相关许可规则,但是始终没有得到回复。经过一段时间的等待后,他决定自己亲自组织一个Linux桌面系统的项目。在1997年的夏季,Icaza受一个朋友的邀请来到微软,开发基于SPARC的Internet Explorer for Solaris系统(因为其技术专长就是Linux/SPARC)。在微软,他学到了一些关于ActiveX和COM的知识,并开始对这种技术非常着迷。我想,这对他将来开发GNOME Bonobo组件架构身有影响。在那里,他还巧遇了一直以来在LinuxNet IRC交流的几个网友。当他再次返回墨西哥时,便与Federico着手设计一套GUI控制的基础构架(基于Unix系统),并将其命名为GNOME。1997年8月,GNOME项目正式启动,26岁的Icaza和墨西哥国立自治大学计算机科学专业的学生Federico便着手在GIMP、Guile邮件列表、GNU项目声 猜你喜欢