明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

將.Net應用移植到Linux上來的Mono工程

[摘要]開放源代碼協(xié)會通過Linux軟件開發(fā)公司Ximian開始了一個旨在將微軟.Net平臺移植到Linux上來的項目。這個叫做Mono工程的項目包括創(chuàng)建一個開發(fā)平臺允許人們?yōu)榛贚inux和基于Windows系統(tǒng)的.Net開發(fā)應用程序。據(jù)Ximian公司的首席技術官員Miguel de Icaza說Mo...
開放源代碼協(xié)會通過Linux軟件開發(fā)公司Ximian開始了一個旨在將微軟.Net平臺移植到Linux上來的項目。這個叫做Mono工程的項目包括創(chuàng)建一個開發(fā)平臺允許人們?yōu)榛贚inux和基于Windows系統(tǒng)的.Net開發(fā)應用程序。據(jù)Ximian公司的首席技術官員Miguel de Icaza說Mono項目的起因是GNOME社團特別是Ximain公司對于一個改進的開發(fā)工具的需要。

但是Mono項目的影響確是更加深遠的,因為這些開發(fā)工具是基于CLI(通用語言架構)和微軟提交給歐洲計算機制造協(xié)會(ECMA)的C#實現(xiàn)標準的。如果Mono能夠完成基于這些標準創(chuàng)建一套Linux開發(fā)工具集的目標的話,開發(fā)者將能夠編寫同時在Windows和Linux上運行的.Net程序,這些程序甚至還可能在其它非Windows的操作系統(tǒng)上運行,比方Unix。

除了實際的開發(fā)過程,Mono項目的工具必須在開放源代碼社團的內部完成而不能違反微軟的知識產權專利--這實際上意味著開發(fā)者們必須基于標準重新構造這些工具而不能查看微軟的任何源代碼。

Mono項目包括三個核心的部分:一個C#語言的編譯器,一個CLI和一個類庫。 CLI是包含了類加載器的虛擬機,實時的編譯器,和一個運行時環(huán)境的垃圾收集器。CLI這個組件將允許用C#編寫的應用程序能夠在象Linux這樣的非Windows操作系統(tǒng)上運行。這與Java世界中Java虛擬機能夠讓一個應用程序在不同的操作系統(tǒng)上運行是類似的。

Mono項目的類庫能夠讓應用程序完成核心的諸如XML處理,文件輸入輸出,和連接網絡之類的任務。它將會和微軟的CLI兼容(與微軟在.Net framework中發(fā)布的東西緊密的配套),還有一點就是將由開放源代碼團體編寫的額外的類庫也將和CLI兼容。

Ximian公司的de Icaza希望在年底到達項目的一個里程碑,這時編譯器將能夠編譯類庫了。圖形用戶界面組件--創(chuàng)建GUI程序所需的類庫--將在明年中完成。

“我們在這個方面工作的原因是希望升級我們的開發(fā)平臺來創(chuàng)建我們的Evolution桌面應用程序,”de Icazo說。Evolution是Ximian公司的電子郵件客戶端及個人和工作組信息管理程序!爱斘覀兛匆.Net framework的時候,我們覺得這些就是我們將用來開發(fā)我們下一代產品要使用的工具,”他說。

Ximian并不將Mono和它自己看作是給Linux開發(fā)者一種途徑在可用的開發(fā)工具方面趕上Windows。其實,Linux開發(fā)者將更喜歡用他們目前使用的工具來編寫的編譯應用程序。Ximian 將另一個開放源代碼項目,SharpDevelop看作是用來提供與微軟Visual Studio .Net類似的集成開發(fā)環(huán)境的一種途徑。

通過以開放源代碼的方式開發(fā)Mono,這個項目包含了許多對開發(fā)過程擁有廣泛興趣的人們。雖然Ximian可能希望找一些改進的開發(fā)工具來加速它的應用程序的開發(fā)過程,但其它的開發(fā)者可能是希望找到能夠讓他們在Windows上編寫程序然后在Linux系統(tǒng)上運行它們的開發(fā)工具。

其中的一個大問題是如何避免微軟的知識產權保護!拔覀儽苊庵R產權保護的方法是堅持非研究性的主題并使用現(xiàn)有的技術實現(xiàn)其功能,”de Icaza說。例如,Mono JIT編譯器沒有使用任何先進的JIT編譯器技術。相反Mono的版本是基于老的JIT技術的。

De Icaza還聲稱Mono必須“著眼大處”還不僅僅是去年ECMA規(guī)定了些什么。也就是說,Ximian計劃參與標準的制定過程并創(chuàng)建類庫來提高.Net framework的薄弱之處,比方說電子郵件管理。

據(jù)Giga Information Group的副分析師Stacey Quandt稱,微軟不太可能支持Mono因為其授權是與GNU 通用公眾證書為C#的授權和GNU 弱公眾證書為類庫和運行庫的授權聯(lián)系在一起的。

但即使微軟不支持Mono,Mono的存在也證實了微軟對于.Net能夠移植到其它平臺的聲明是正確的。

Quandt說面向更廣泛的開發(fā)團體是Mono面臨的另一個挑戰(zhàn)。例如IBM和Sun都在Java上花費了巨額的投資,自然也就很難容忍競爭行為。