程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 將.Net應用移植到Linux上來的Mono工程

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

編輯:.NET實例教程
開放源代碼協會通過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上花費了巨額的投資,自然也就很難容忍競爭行為。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved