天天看點

淺談微軟跨平台與MONO

在談之前我們先看一下什麼是MONO?MONO項目是由Ximian發起、Miguel de lcaza上司、Novell公司主持的項目。它是一個緻力于開創.NET在Linux,FreeBSD,Unix,Mac OS X和Solaris等其他平台使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運作時,和一組類庫,并逐漸實作了 ADO.NET、ASP.NET、WinForm、Silverlight(可惜沒有實作強大的WPF),能夠使得開發人員在其他平台用C#開發程式。

1,跨平台:開創.NET在Linux,FreeBSD,Unix,Mac OS X和Solaris等其他平台使用,這是微軟沒有實作的,但是MONO進行了補充,是以值得看好。 2,開源:不論使用什麼技術,大家似乎都希望能夠用開源的産品,一方面是考慮到技術的可控性和可維護性;另一方面則是考慮到安全性,當然在另一個角度也是可以學習到其中的一些技術和思想,是以大家對開源總是報以歡迎的态度。 3,不同的方式實作.NET架構:由于微軟對技術申請了專利,是以MONO不能盲目的模仿,對很多細節都改用自己的方式進行了實作,是以我們也可以學到很多不一樣的實作方式。 4,持續更新:MONO從一開始到現在始終在更新,其中包括bug修複、版本更新、增加新的功能及應用,是以相信它會在不斷的更新中更加完善。
1.模仿但要避免專利:由于是模仿微軟.NET平台,但因為微軟對代碼申請了專利,是以MONO隻能采用其它實作方式來實作同樣的功能,這樣一來很多地方就會實作得很累贅,效率也會受損。 2.沒有擺脫實驗産品的頭銜:由于它目前的使用比較低,是以資訊回報和持續改進就做得比較弱,這也是目前功能完善得比較慢的原因之一吧。 3,功能還需要完善:一些主要功能還未實作,如作為Windows平台最基礎的COM和COM+功能沒有儲存,像MSMQ等消息隊列,消息傳送的功 能也沒有實作,對ADO.NET、XML等核心功能效率有待提升,對BCL庫代碼也有很多需要優化的地方,強大的WPF也沒有引入。 4.效率和使用者體驗還有待提升。

微軟與MONO之間的關系也一直處于不冷不熱的狀态,沒有明确的反對,也沒有明确的支援,究其原因筆者認為主要有以下兩點:

1,微軟帶來最大收益的産品仍舊是Windows作業系統和Office等軟體,微軟在其他領域盈利都沒有這兩大産品來得直接。而.NET作為微軟 的強大開發平台,是不希望落在其他平台上運作的,這樣就會削弱Windows作業系統和Office等軟體的市場占有率,是以讓.NET跨平台對微軟來說 是一件舍本求末的事情,這也是微軟不主張.NET運作于其他平台的主要原因,你想微軟是一個以技術為主導的公司,任何IT市場都會有它的身影,如果想 讓.NET跨平台,那豈不是一件很輕而易舉的事情嗎? 2,由于MONO還沒有成熟,在很多方面都表現得像一個實驗室産品,在根本上沒有對微軟構成威脅,況且在外界質疑.NET是否能跨平台的時候,還有一個現身的說法,是以微軟也不會明确的反對和支援。

  雖然目前來說MONO喜憂參半,但優點始終要大于缺點,畢竟每一個架構或者産品都是慢慢不斷改進而完善的,更何況開源必将是未來的一個趨勢,是以我們有理由也有信心期待它接下來的發展。

本文轉自KnightsWarrior51CTO部落格,原文連結:http://blog.51cto.com/knightswarrior/403903 ,如需轉載請自行聯系原作者

繼續閱讀