mono2025詳細攻略!(小編推薦)

Mono 是跨平臺的 .Net Framework 的實現。 Mono 做了一件很了不起的事情,將 CLR 在所有支持的平臺上重新實現了一遍(包含手機上常用的安卓平臺和Switch,PS4,這樣的遊戲機平臺),並且mono還將 .Net Framework 提供的基礎類庫也重新實現了一遍。 轉自維基 而且,確切的說,CIL也不僅僅只有C#可以生成,微軟的全系列動態語言都可以生成CIL(C#、F#、VB.NET,VB),在維基百科上你還可以查到(C++、Python),上文提到的Unity和Boo兩種語言最終也會編譯成CIL。

  • 在我們談到.NET framework時,我們多數是指這個類庫。
  • 而且C#的跨平臺是基於.Net Framework框架下的(CIL,通用描述語言)和CLR(通用運行環境的)。
  • 這裏先介紹一下Mono項目,Mono是微軟 CLI 規範的一種實現,類似的還有 .NET Framwark、Portable.NET(該項目已於2012.12月停止).
  • 在ECMA-335的第六章詳細說明了公共語言規範(Common Language Specification,CLS)並定義了提供給公共語言基礎的接口,例如對於枚舉類型的隱含表示類型的協定。

只要任何一個平臺實現了當前平臺對應的CLR,就可以在當前平臺上解析和運行CIL。 隨着移動平臺的崛起,Mono也有Android 和 IOS 的實現版本,因此你也可以使用 C# 來開發 Android 和 IOS 應用程序。 MonoDevelop是一個用於創建Mono應用程序的集成開發環境。 該軟件原先是SharpDevelop向Gtk#的一個移植,而現今該軟件已獨立開發。 Unity因爲方便和跨平臺選擇了C#作爲主要的開發語言。 而且C#的跨平臺是基於.Net Framework框架下的(CIL,通用描述語言)和CLR(通用運行環境的)。

mono: mono noun

如果沒有對應平臺CLR對CIL的解析和對應機器碼的實現,CIL就無法在當前平臺運行。 如果一種語言實現生成了CLI,它也可以通過使用CLR被調用,這樣它就可以與任何其他.NET語言生成的資料相交互。 衆所周知,一般Unity遊戲開發,都使用C#作爲主要開發語言。 雖然Unity本身支持Unity(一種Java的擴展)和Boo(一種受Python啓發的語言),但是在正常生產實踐中,還是會使用C#作爲主要開發語言。 打開 MonoDevelop,對於習慣了雙擊圖標啓動應用程序的我,最開始使用連個程序多不會啓動,真是丟臉死了 囧。 在Ubuntu幫助中心找到了方法,點擊桌面左側欄上的 Dash Home (下圖中的Ubuntu圖標),在彈出的搜索欄中輸入要找的應用程序,找到有單擊即可啓動。

這裏先介紹一下Mono項目,Mono是微軟 CLI 規範的一種實現,類似的還有 .NET Framwark、Portable.NET(該項目已於2012.12月停止). CLI 是 Common Language Infrastructure(公共語言基礎)的縮寫,它規定了一語言虛擬機結構規範,這點類似於Java虛擬機,只要遵循該規範編寫的代碼均可以運行於該虛擬機之上,只要該虛擬機針對各個實現,那麼我們編寫的代碼就可以“一次編寫,處處執行”了, Mono就是 CLI 規範的一個跨平臺實現。 Mono是一個由Novell公司(由Xamarin發起)主持的項目,並由Miguel de lcaza領導的,一個致力於開創.NET在Linux上使用的開源工程。 它包含了一個C#語言的編譯器,一個CLR的運行時,和一組類庫,並實現了 ADO NET和ASP NET。 Mono項目的目標就是提供一個符合 CLI 規範的跨平臺語言虛擬機實現,讓更多的人可以使用C#在Linux、Mac OS等這些系統上編寫程序了,獲得 C# 和 CLI 所帶來的巨大好處。 公共語言基礎(Common Language Infrastructure,CLI),又叫公共語言運行時(Common Language Runtime),已由Mono實現。

mono: mono與微軟專利

它們跟Win32共享庫一樣都是dll文件,儘管不完全一樣。 一些程序集的例子有:mscorlib.dll,System.dll,System.Data.dll和Accessibility.dll。 命名空間經常被分拆到幾個程序集中,而一個程序集可以由幾個文件組成。 NET產生了興趣.在查看字節碼解釋器後,他發現對於元數據沒有相應的說明文檔.2001年2月, deIcaza在. mono NET郵件列表中索要到了那段缺失了的關於元數據文件格式的信息,並開始了採用編寫一個C #編譯器的工作,作爲對的實踐C #. 2001年4月ECMA公佈了那段缺失的文件格式,而在GUADEC (2001年4月6日- 8月4日) deIcaza展示了他的編譯器的一些特性(那個時候他的編譯可以解釋自身).

這些工具類本是採用C#編寫的,但是由於.NET採用的公共語言運行時,它們可以用於任何.NET語言。 類庫被按命名空間進行了結構化,並被放置於稱爲程序集的共享庫中。 在我們談到.NET framework時,我們多數是指這個類庫。 在ECMA-335的第六章詳細說明了公共語言規範(Common Language Specification,CLS)並定義了提供給公共語言基礎的接口,例如對於枚舉類型的隱含表示類型的協定。 mono2025 Mono的編譯器負責生成符合公共語言規範的映射代碼,即公共中間語言(Common Intermediate Language,CIL)。

mono: mono更多的中文(繁體)翻譯

個人文筆不好又有點懶,所以貼了這麼多圖,希望還算湊合。 前面是 mono2025 使用C# 開發Linux上的控制檯程序,這個雖說已經可以做很多事了,但是別忘了 C# 開發WinForm程序那可是很爽的,Mono怎麼能不實現這一部分呢? 下面我們就在Linux 下使用 C# 開發WinForm程序。 mono2025 在經過各種考量後,Unity選擇了開源,並且平臺支持性很好的Mono這一開源的.Net Framework跨平臺實現方案。 從上面可以看出,C#或者CIL跨平臺離不開對應平臺CLR的支持。

mono: mono空間和程序集

ECMA標準先前還定義了一個符合公共語言規範的程序庫作爲應用框架。 Ximian內部對如何創建能有效提升生產效率的工具進行了大量的討論,他們的目標是通過這些創建出來的工具讓使用者可以在更短時間內創建出更多的應用程序從而縮短開發週期和降低開發成本.經過可行性研究後,他們清楚地見到創建這樣的一項技術是可行的,於是Ximian從其它的項目抽調人員並創建了的開發小組Mono.由於缺少人力來創建整個. NET替代產品,他們在2001年7月19日的O’Reilly大會創建了的開源項目Mono. 由於改程序編譯成了中間代碼,因此該程序也可以直接拷貝到 Windows平臺下運行,不過由於是使用Linux上的GTK來實現Windows上的 WinForm 所以在Window上運行時需要安裝相應的GTK庫或者Mono for windows。 在 上面的解決方案中添加新項目,在 彈出的對話框中選擇一個 GTK mono2025 項目(WinForm是Windows上的技術,Linux上使用GTK等技術實現WinForm)取名”Windows”,然後在MainWindow.cs中編寫如下代碼,其所做的工作就是創建一個名爲”OK”的按鈕,並添加到該窗體中。

mono: mono類庫

C# 是微軟推出的一種基於 .NET 框架的、面向對象的高級編程語言。 微軟在 2000 年發佈了這種語言,希望藉助這種語言來取代Java,更多詳細的介紹可以參看C#Wiki。 編譯和調試與VS類似,有 VS 這麼優秀的範例在前面,MonoDevelop爲了方便用慣了 VS 的程序員,儘量採用了與 VS相似的界面佈局。 對於一些問題,例如那些與協同工作和交互相關的,可能就只有一種解決方案。 由於這個相同的原因,儘管第一個選項總是可行的,它卻可能導致一個開發出來的產品並不能作爲.NET的替代品。 第三個選項則是昂貴的,甚至不可能的,這需要一定程度的運氣。

mono: Unity C# 和 Mono

很多移植到Mono的類庫使用了CLI的這個特性,例如Gtk#。 命名空間是一種用於將邏輯上相似的類按層次結構分組的機制。 在這種結構化採用被點號”.”分隔的單詞來實現。 通常最頂層的命名空間是System,例如System.IO和System.Net(完整的命名空間列表可以在Mono文檔中找到)。 當然還有別的頂層命名空間,例如Accessibility和Windows就是這樣的例子。 這些只是自己出於一時興趣的嘗試,算是給想了解下用C#編寫Linux程序或是跨平臺程序的小夥伴一個引導吧。

mono: mono 在英語-中文(繁體)詞典中的翻譯

除此之外,還爲該按鈕的鼠標點擊事件綁定了相應的處理函數,當點擊按鈕時彈出一個消息框。 Java虛擬機(該虛擬機最初只爲Java打造所以才叫Java虛擬機,跟Java語言應該分開看)就是一個語言虛擬機,它也有自己的一套規範,只要遵循Java虛擬機規範的語言編寫的代碼都可以跑在Java虛擬機之上, Java mono2025 語言就是遵循Java虛擬機規範的一種語言。 CLI 一開始就野心比Java虛擬機大,因爲它一開始就打算打造一個語言虛擬機平臺,上面可以支持各種語言,而不是像Java虛擬機最初只是爲了Java設計的,造成Java虛擬機許多地方考慮不周全。 Unity第一推薦開發語言C#,之所以用C#的跨平臺特性。

mono: mono背景介紹

Unity當年選用Mono而不是幾乎只能在Windows上運行的.Net Core 就是看重了Mono的跨平臺支持。 並且Mono是一個開源軟件,Unity也很方便在Mono的基礎上做修改和微調。 在原生的.NET/Mono應用程序中,所有代碼都是託管的,也就是說,是受管於CLI式的內存管理和線程安全管理的。 其它的.NET或Mono應用程序可以通過使用System.InterOpServices庫創建C#綁定來調用已存的非託管代碼。

公共語言基礎已被ECMA定義爲標準ECMA-335。 要運行一個.NET應用程序,你必須使用相應的參數調用運行時。 mono 類庫爲應用程序開發提供一套廣泛而有效的工具類。