微軟開(kāi)發(fā)框架的開(kāi)源版本現(xiàn)在能夠在更多現(xiàn)有.NET應(yīng)用程序上運(yùn)行。Mono項(xiàng)目宣布發(fā)布Mono 1.2版——微軟.NET框架的開(kāi)源版本。該項(xiàng)目由Novell支持,允許為Windows框架編寫(xiě)的應(yīng)用程序在Linux和其它非微軟平臺(tái)上運(yùn)行。最新版本全面支持.NET 1.1,并部分與.NET 2.0兼容,包括支持Windows Forms。
Mono按ECMA標(biāo)準(zhǔn)ECMA-335定義的標(biāo)準(zhǔn)執(zhí)行.NET,ECMA-335指定通用語(yǔ)言基礎(chǔ)構(gòu)架(Common Language Infrastructure)、一個(gè)C#編譯器和與微軟相似的類庫(kù),雖然這些并非ECMA標(biāo)準(zhǔn)的工作范圍。Mono可在Linux、Mac OS X、Solaris和Windows上運(yùn)行,并被第三方應(yīng)用到其它平臺(tái)上,包括Symbian OS。
Mono項(xiàng)目由Miguel de Icaza在Ximian工作時(shí)開(kāi)發(fā),以其作為快速建立Linux應(yīng)用程序的一種方法,Ximian于2003年被Novell收購(gòu)。Mono可通過(guò)GPL或一個(gè)Novell的所有權(quán)許可使用。Mono包含在最近與微軟簽訂的專利協(xié)議之中,盡管這僅對(duì)Novell客戶而非所有Mono用戶適用。Novell指出Mono的代碼沒(méi)有侵犯微軟的任何專利,因此該協(xié)議對(duì)于該開(kāi)源框架的用戶沒(méi)有影響。
De Icaza在微軟的TechEd Developers大會(huì)上發(fā)表了演講,他告訴Builder UK說(shuō),雖然微軟最近發(fā)布了.NET framework 3.0,但Mono僅支持2.0的部分功能并不妨礙大多數(shù)人應(yīng)用它。“現(xiàn)有.NET應(yīng)用程序的絕大多數(shù)功能還保持在1.0的水平,”他說(shuō)。
雖然de Icaza最初開(kāi)發(fā)Mono的目的是為了建立GUI應(yīng)用程序,但自從被Novell收購(gòu)以來(lái),它在服務(wù)器開(kāi)發(fā)環(huán)境應(yīng)用方面的適用性有了顯著的提高。“今天,我們已經(jīng)改善我們?cè)贏DO、ASP.NET方面的性能;我們建立了開(kāi)發(fā)者需要的工具,F(xiàn)在我們擁有評(píng)測(cè)器、調(diào)試器、以及文本資料——所有,今天它已成為一種更加全面的工具,”他說(shuō)。
有了Mono 1.2,希望應(yīng)用Linux、Unix和Mac OS X的Windows開(kāi)發(fā)者再也不必設(shè)法處理不合規(guī)格的設(shè)備了。“這就像從一間棚屋搬到一幢房子里面。但它還不是一座宮殿,但已是一幢適于居住的房子,并且我們已經(jīng)為下一個(gè)版本做出了規(guī)劃,” de Icaza解釋道。
微軟,它的工具允許你在J2EE系統(tǒng)上運(yùn)行為.NET編寫(xiě)的應(yīng)用程序,一直是該項(xiàng)目的支持者。微軟產(chǎn)品開(kāi)發(fā)副總裁Philippe Cohen告訴Builder UK說(shuō),Mono能夠大大提高跨平臺(tái)應(yīng)用程序開(kāi)發(fā)效率。“.NET開(kāi)發(fā)技術(shù)如此優(yōu)良高效,它一定會(huì)成為一種跨平臺(tái)開(kāi)發(fā)技術(shù)。”Mono的開(kāi)源、協(xié)作本質(zhì)與微軟自身開(kāi)發(fā)跨平臺(tái)工具的計(jì)劃相一致。
“最初,我們自己開(kāi)始對(duì)Visual Studio進(jìn)行擴(kuò)張,希望將其發(fā)展成為一種跨平臺(tái)工具。在2002年,我們開(kāi)始開(kāi)發(fā)我們產(chǎn)品的.NET版本,然后我們發(fā)現(xiàn)在市場(chǎng)上有一個(gè)以Mono形式出現(xiàn)的新產(chǎn)品,于是我們意識(shí)到建立跨平臺(tái).NET的正確方法應(yīng)該是與那些利益一致的廠商合作,”Cohen表示。
事實(shí)上,.NET 方面最受歡迎的 GUI 工具集很大程度上不能算是 Microsoft 自己的 WinForms,而是 GTK+。由于 Gtk# 綁定集隨缺省 Mono 分發(fā)版本一起提供,而且 GTK+ 本身的質(zhì)量出眾,因此 GTK+ 快速成為希望使用新 .NET 平臺(tái)開(kāi)發(fā)桌面的程序員的新寵。另外,由于 .NET 的效率非常高,因此很多新應(yīng)用程序都采用 C# 和 GTK+ 進(jìn)行編寫(xiě),包括一些影響很大的應(yīng)用程序,如 Beagle 項(xiàng)目(該項(xiàng)目允許快速有效地對(duì)計(jì)算機(jī)上存儲(chǔ)的所有信息進(jìn)行搜索)。