NET跨平台的第一步
——Mono項目對C#的實現
曾有人說微軟是一個制訂標准的公司
雖然微軟從來不這樣宣稱自己
但大家可以看到
微軟的很多產品已經成為事實上的標准
在其C#和CLI(Common Language Infrastructure
通用語言架構)被批准為ECMA(歐洲計算機制造協會)的標准之後
更多的人開始確立這樣的想法
經過標准化後的C#將可由任何廠商在任何平台上實現其開發工具及其支持軟件
可以說為C#的發展提供了強大的驅動力
有意思的是
Sun也曾打算向ECMA提交Java標准化申請
但由於無法繼續控制Java的標准化過程以及種種原因
Sun最終還是撤銷了這個提案
自己的孩子終歸是不敢放手
C#成為標准
會對Java造成影響嗎?其他廠商的C#實現情況又如何?Mono開放源碼項目的產生會讓這些問題更為明朗嗎?
實現Linux上的
NET
盡管微軟許諾
NET的開放結構使其具有跨平台的使用能力
但微軟公司似乎並沒有計劃為其他非Windows操作系統平台提供使用
NET的工具
針對這種狀況
年
月
著名的Linux桌面環境GNOME開發商Ximian公司出於改進開發工具的需要
開始啟動一個名叫Mono的開放源碼項目
旨在開發Linux版的
NET
Mono項目的發起人Miguel de Icaza在分析
NET平台的時候
曾表示這是一個非常棒的開發平台
Ximian之所以發起Mono項目是希望升級它們的開發平台來創建其Evolution桌面應用程序
雖然Mono項目的起因並不偉大
但它帶來的影響卻足以使開放源碼領域熱鬧很久
該項目的內容主要包括一個C#編譯器
與微軟的CLI兼容的類庫
Linux版本的CLR(Common Language Runtime)編譯器
其中CLI組件將允許用C#編寫的應用程序能夠在像Linux等非Windows操作系統上運行
就像Java虛擬機能讓一個應用程序在不同的操作系統上運行一樣
Mono項目的倡導人Miguel de Icaza表示
Mono項目將提供能夠自由進行應用程序開發或提供Web服務的工具
從而Linux用戶也能夠享受到
NET平台的巨大好處
如果Mono能夠創建完成一套基於這些標准的Linux開發工具集的話
開發者將能夠編寫同時在Windows和Linux上運行的
NET程序
這些程序甚至還有可能在其他非Windows的操作系統上運行
比如Unix
GNOME架構的組件可以很快地應用於實現
NET類庫
而且最有意思的是
通過現有GPL授權
任何人都可以自由地擴展和升級這些技術
雖然
NET以前一直是開放源碼的支持者所極力反對的
但Mono項目的啟動將為非Windows操作系統實現一個
NET開發平台
當然
在實際的開發過程中
Mono項目必須基於標准重新構造這些工具而不能查看微軟的任何源代碼
Mono掀起開放源碼波瀾
微軟表示
將C#和CLI標准化
最終的目的還是為了讓更多的人使用它
毫無疑問
如果Mono項目成功
微軟的
NET將會越來越重要
越來越普及
但同時也會削弱微軟對軟件行業的控制
這大概是更多Mono項目的支持者願意看到的
他們認為Mono項目對Linux以及像GNOME這樣的技術來說是一個好機會
通過Mono計劃
它們有可能得到那些目前仍然使用微軟技術的大公司的認可
而且
理論上講
如果這些公司選擇部署Linux
可以避開微軟的高額許可費用
他們相信
更多的程序員參與到Mono項目中
一定會創造出一個比Windows上更好的
NET實現
如果真能這樣
那Mono將使微軟不得不承認開放源碼方式在開發和優化各種系統上所具有的威力
在Mono的擁護者描繪美好前景的同時
也有人擔心Mono項目會損害到Java和Linux
因為它使GPL開發人員在Windows平台上發布他們的應用程序更為便捷
同時他們還擔心微軟會在其HailStorm服務中建立硬連接
從而迫使那些在Mono上進行開發的公司將其應用程序轉移到Windows環境中去
Mono項目能否最終成功
它到底會帶來什麼樣的影響
目前來說還是未知數
不過有分析家指出
NET還是初生技術
任何對它的克隆也極有可能更不成熟
不管怎樣
市場是最公平的
好的東西自然會有更多的人使用
而如果有人采用強制手段
市場自然會做出公平的選擇
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19676.html