跨平台.net運行環境mono v5.0.1.1最新版發布了,作為一個跨平台開源.net開發環境,旨在允許開發人員輕鬆創建跨平台應用程序。目標是創建一係列符合 ECMA 標準的.NET 工具,包括 C# 編譯器和共通語言執行平台。
微軟開發了一個稱為共享源碼公共語言基礎(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。該虛擬機可以將代碼實時編譯或者預先編譯到原生代碼。對於那些沒有列出來的係統,則使用的是代碼解釋器。
Mono 賦予了開放源碼程序員使用各種 .NET 兼容語言為 Linux 構建應用程序同時保持跨平台性的強大編程能力和靈活性。對於當前的 .NET 開發人員來說,Mono 的主要優點是提供了到 Linux 的更容易的遷移路徑。 Mono 項目擁有非常開放和活躍的開發社區,為開發人員提供了運行 .NET 客戶機和服務器應用程序的工具和基礎設施。
使用 Mono 體係結構最大的好處可能是獲得了語言無關。Mono 可以讓您利用用 .NET 運行環境所支持的語言編寫的任何已有代碼
考慮下麵這種情況,即傳統的 Linux 編程通常完全用 C 來完成。如果希望使用其他語言,比如 Pyhthon,通常需要對原生 C 代碼使用 Python 綁定。
創建綁定這種方法不一定是最優或者最容易的,而且有時候不存在綁定,因此,從任何支持 Mono 的語言,Mono 都允許您訪問任何另一支持 Mono 的語言的已有代碼。可以使用 C#、Python 甚至 Java? 編寫應用程序同時重用其他語言編寫的類,而不需要綁定!(從 C# 程序通過 Platform Invocation Facility [pinvoke] 使用 C 庫代碼就是一個例子,稍後還將提到。)
如前所述,您的代碼獲得了平台獨立性。這是自動進行的,因為 .NET 代碼並沒有編譯成機器碼,而是編譯成中間語言(IL)。IL 在 Mono 提供的 .NET 運行時中使用,因此可以跨平台複製二進製代碼。Java 開發人員非常熟悉這種思想,體現了“一次編寫,到處運行”的觀念。
Mono 還提供了省時、免費的 .NET 框架類庫實現。這些針對各種常見設計任務(包括不那麼常見的任務)而設計的庫已經寫好並經過測試。庫包括最常用的數據結構、加密庫、XML 和 Web 服務支持。
雖然 .NET 框架中可使用很多種語言,但是 C# 最為 .NET 開發人員所看重。C# 是一種高效、帶有無用單元回收的語言,提供了強大的麵向對象能力,可以讓您迅速進入編程任務的核心。這種語言的語法對於曾經使用現代基於 C 的語言編程的任何人都非常熟悉,但是又包括使用現代腳本語言的那些人所熟悉的便利特性。
最後,Mono JIT (Just In Time) 編譯器速度很快,在適當的性能水準的基礎上提供了所有這些好處。
Mono 項目包括以下開放源碼實現:
C# 編譯器
虛擬執行係統(Virtual Execution System),包括 JIT 編譯器、無用單元回收程序、裝載器和線程引擎
.NET 類庫實現
可視化開發工具和調試器
Mono 項目工具可運行在不同硬件和操作係統上,包括 Linux、Windows 和 Mac OS X。
Mono 項目目前在不同程度上支持下列語言:
C#
Java
Boo
Nemerle
Visual Basic.NET
Python
JavaScript
Oberon
PHP
Object Pascal
等等
注意,並非每一種都像 C# 運行時那樣完整。比如,沒有直接支持 Java,而是將 Java 字節碼即時轉換成 IL。
實現程度不同的另一個例子是,Python 實現最近似乎停止了。需要 Python 的開發人員可能想使用 Boo,這是一種更完整的腳本語言實現(雖然類似於 Python,但是是為 .NET 框架設計的)。談到支持 Mono 的語言,需要提一下 Nemerle 是一種新的 .NET 平台混合編程語言(函數型、麵向對象型和命令型)。
76.4M / 03-25
立即下載55M / 06-05
立即下載237.9M / 04-13
立即下載140.5M / 03-06
立即下載900.9M / 03-02
立即下載96.2M / 07-06
立即下載311.2M / 07-06
立即下載335M / 07-06
立即下載200M / 07-06
立即下載413.8M / 07-06
立即下載353.9M / 06-05
立即下載131.8M / 04-13
立即下載230.8M / 03-03
立即下載195.6M / 03-03
立即下載165.4M / 03-03
立即下載45.6M / 09-08
立即下載665.2M / 07-06
立即下載2.84G / 07-06
立即下載93M / 07-06
立即下載338.3M / 07-06
立即下載1.38G / 07-26
立即下載488.3M / 07-16
立即下載109.8M / 06-03
立即下載142M / 01-08
立即下載1.2M / 11-23
立即下載548.8M / 04-13
立即下載1.6M / 04-13
立即下載1.48G / 03-18
立即下載646.6M / 03-03
立即下載133.7M / 03-03
立即下載325.8M / 06-07
立即下載60M / 04-29
立即下載254M / 04-25
立即下載659M / 04-23
立即下載1M / 12-26
立即下載253.4M / 12-08
立即下載253M / 12-08
立即下載1.19G / 11-16
立即下載110.5M / 04-23
立即下載26.7M / 03-16
立即下載488.3M / 07-16
立即下載248.9M / 12-08
立即下載248.9M / 12-08
立即下載201.2M / 04-13
立即下載100.6M / 03-06
立即下載148.9M / 03-06
立即下載1.12G / 07-06
立即下載1.25G / 07-06
立即下載9.48G / 07-06
立即下載50KB / 07-06
立即下載116.2M / 04-10
立即下載1.92G / 04-17
立即下載201.5M / 04-13
立即下載7.31G / 07-01
立即下載94.3M / 07-06
立即下載2.48G / 07-06
立即下載7.63G / 07-06
立即下載1M / 07-06
立即下載778.1M / 07-06
立即下載509.7M / 07-06
立即下載561.8M / 07-11
立即下載1.32G / 01-19
立即下載72M / 07-06
立即下載548.7M / 07-06
立即下載1.00G / 07-06
立即下載9.13G / 07-06
立即下載126.2M / 07-06
立即下載72M / 07-06
立即下載105.1M / 07-06
立即下載132M / 07-06
立即下載