亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

開源軟件----Mono框架和架構

系統 1768 0

http://www.mono-project.com/Main_Page

?

http://zh.wikipedia.org/zh/Mono

?

Mono 是一個由 Novell 公司(先前是 Ximian )主持的項目。該項目的目標是創建一系列符合 ECMA 標準( Ecma-334 Ecma-335 )的 .NET 工具,包括 C# 編譯器和 共通語言執行平臺 。與微軟的 .NET Framework 不同,Mono項目不僅可以運行于 Windows 系統上,還可以運行于 Linux FreeBSD Unix Mac OS X Solaris

Mono現由Novell持有 雙重許可 ,這和 Qt Mozilla應用程序套件 的情況相似。Mono的C#編譯器及其相關工具發布于 GNU General Public License (GPL)之下,其運行時庫發布于 GNU Lesser General Public License (LGPL)之下,其類庫發布于 MIT License 之下。這些均是 開源協議 因此Mono是一個 開源軟件 。如果你打算向Mono貢獻你的 源碼 ,則你須簽署一個 版權分派 給Novell以允許它將這些代碼在其它協議下再申請許可,從而允許 Novell 保留其雙重許可的能力來持有Mono的商業協議。 [1]

微軟 開發了一個稱為 共享源碼公共語言基礎 (Shared Source Common Language Infrastructure,Shared Source CLI)的可用于 FreeBSD ,Windows和Mac OS X的.NET實現版本。微軟的 共享源碼 協議并不是開源軟件協議,且可能對于社區來說也是不足夠的(它明文禁止了對軟件的商業用途)。我們還可以見到另外一個.NET實現版本, Portable.NET 項目,該項目與Mono項目有著很多相同的目標。

Mono虛擬機包含一個 即時編譯 引擎,該引擎可用于如下處理器: x86 SPARC PowerPC ARM S390 (32位模式和64位模式), x86-64 IA64 和64位模式的SPARC。該虛擬機可以將代碼即時編譯或者預先編譯到原生代碼。對于那些沒有列出來的系統,則使用的是代碼解釋器。

目錄

? [ 隱藏 ]

[ 編輯 ] 歷史

Miguel de Icaza 在.NET的文檔于 2000年 10月 發布時就馬上對.NET產生了興趣。在查看字節碼解釋器后,他發現對于元數據(metadata)沒有相應的說明文檔。 2001年 2月 ,de Icaza在.NET郵件列表中索要到了那段缺失了的關于元數據文件格式的信息,并開始了采用C#編寫一個C#編譯器的工作,作為對C#的實踐。 2001年 4月 ECMA公布了那段缺失的文件格式,而在 GUADEC 2001年 4月6日 4月8日 )de Icaza展示了他的編譯器的一些特性(那個時候他的編譯可以解釋自身)。

Ximian內部對如何創建能有效提升生產效率的工具進行了大量的討論,他們的目標是通過這些創建出來的工具讓使用者可以在更短時間內創建出更多的應用程序從而縮短開發周期和降低開發成本。經過可行性研究后,他們清楚地見到創建這樣的一項技術是可行的,于是Ximian從其它的項目抽調人員并創建了Mono的開發小組。由于缺少人力來創建整個.NET替代產品,他們在 2001年 7月19日 歐萊禮 大會創建了Mono的開源項目。

差不多三年后,Mono于 2004年 7月30日 發布了1.0版本。

[ 編輯 ] 架構

[ 編輯 ]

類庫 為應用程序開發提供一套廣泛而有效的工具類。這些工具類本是采用C#編寫的,但是由于.NET采用的 公共語言運行時 ,它們可以用于任何.NET語言。類庫被按命名空間進行了結構化,并被放置于稱為程序集的共享庫中。在我們談到.NET framework時,我們多數是指這個類庫。

[ 編輯 ] 命名空間和程序集

命名空間 是一種用于將邏輯上相似的類按層次結構分組的機制。這種機制防止了命名沖突。在這種結構化采用被點號"."分隔的單詞來實現。通常最頂層的命名空間是System,例如System.IO和System.Net(完整的命名空間列表可以在 Mono文檔 中找到)。當然還有別的頂層命名空間,例如Accessibility和Windows就是這樣的例子。新建的命名空間還可以以開發組織的名字開頭。

程序集 是這些類庫的物理載體。它們跟Win32共享庫一樣都是dll文件,盡管不完全一樣。一些程序集的例子有:mscorlib.dll,System.dll,System.Data.dll和Accessibility.dll。命名空間經常被分拆到幾個程序集中,而一個程序集可以由幾個文件組成。

[ 編輯 ] 公共語言基礎和公共語言規范

公共語言基礎 (Common Language Infrastructure,CLI),又叫公共語言運行時(Common Language Runtime),已由Mono實現。該運行時用于執行已編譯的.NET應用程序。公共語言基礎已被ECMA定義為標準ECMA-335。要運行一個.NET應用程序,你必須使用相應的參數調用運行時。

在ECMA-335的第六章詳細說明了 公共語言規范 (Common Language Specification,CLS)并定義了提供給公共語言基礎的接口,例如對于枚舉類型的隱含表示類型的協定。Mono的編譯器負責生成符合公共語言規范的映射代碼,即公共中間語言(Common Intermediate Language,CIL)。Mono的運行時將運行這類代碼。ECMA標準先前還定義了一個符合公共語言規范的程序庫作為應用框架。

[ 編輯 ] 托管與非托管代碼

在原生的.NET/Mono應用程序中,所有代碼都是 托管 的,也就是說,是受管于CLI式的內存管理和線程安全管理的。其它的.NET或Mono應用程序可以通過使用System.InterOpServices庫創建C#綁定來調用已存的非托管代碼。很多移植到Mono的類庫使用了CLI的這個特性,例如Gtk#。

[ 編輯 ] 相關項目

現有大量與Mono相關的用于擴展Mono的項目,這些項目允許開發者在他們的開發環境中使用Mono。這些項目包括:

  • Cocoa# ,對原生Mac OS X工具包的一系列包裝( Cocoa )。
  • Gecko#,一個對在Mozilla中使用的嵌入式布局引擎的綁定( Gecko ).
  • Gtk# ,對使用 C GTK+ 庫的C#的外包。
  • Tao ,一個圖形及游戲庫的綁定。

[ 編輯 ] Mono與微軟的專利

人們對于微軟能否采用專利摧毀Mono項目進行了大量的爭論。其實,專利問題不在于已被提交到 ECMA 組織的核心技術或Unix/Gnome的專有部分,而在于由微軟基于.NET Framework創建的技術,例如 ASP.NET ADO.NET Windows Forms 。這些技術在Mono中至今還沒有被完全地實現,事實上,在開發Mono應用程序時也不需要用到,然而,在開發基于Windows平臺的程序時卻是不可缺少的。Mono團隊將目標定為將這些技術納入到項目中,并制訂了一個三步走策略來處理它們:

  1. 采用其它實現方式來實現從而繞過專利問題
  2. 把包含專利的代碼清除出項目
  3. 找出“現有技術( prior art )”從而將專利變為非專利

顯然,第一個選項并不總是可行的。對于一些問題,例如那些與協同工作和交互相關的,可能就只有一種解決方案。由于這個相同的原因,盡管第二個選項總是可行的,它卻可能導致一個開發出來的產品并不能作為.NET的替代品。第三個選項則是昂貴的,甚至不可能的,這需要一定程度的運氣。

[ 編輯 ] 使用Mono開發的軟件

F-Spot photo management program
Muine music player

以下是使用Mono ? API C# 編寫的部分程序:

[ 編輯 ] 備注

  1. ^ ?For more information about the licensing, see ? Mono FAQ: Licensing

[ 編輯 ] 參考文獻

[ 編輯 ] 外部鏈接

[ 編輯 ] 國際站點

開源軟件----Mono框架和架構


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 黄片123| www.久草视频 | 国产乱码精品一区二区三区卡 | 欧美精欧美乱码一二三四区 | 日本人一级毛片免费视频 | 日韩久久精品一区二区三区 | 69日本人xxxx16-18 | 久久精品免视看国产盗摄 | 爱爱免费观看高清视频在线播放 | 成人人免费夜夜视频观看 | 女胁师~牝奴隷调教 | 日本欧美久久久久免费播放网 | 日本不卡免费新一区二区三区 | 亚洲精品一区二区深夜福利 | 99国产精品视频免费观看 | 久久欧美精品 | 亚洲图片在线观看 | 99视频在线精品免费 | 99爱国产| 久久精品一区二区影院 | 欧美性视频xxxxxxxx | 激情综合五月婷婷 | 日本午夜色 | 天天做天天添天天谢 | 国产精品成人观看视频国产 | 天天天做天天天天爱天天想 | 国产欧美一区二区三区在线看 | 99热在线看 | 无遮挡一级毛片呦女视频 | 国产精品欧美在线观看 | 日韩精品一区二区三区中文3d | 曰曰啪天天拍视频在线 | 9966久久精品免费看国产 | 欧洲成人全免费视频网站 | 欧美精品在线一区二区三区 | 久久精品成人 | 国产成人综合日韩精品婷婷九月 | 奇米影视8888| 在线观看精品91老司机 | 亚洲激情小视频 | 番茄视频成人在线观看 |