使用Mono進行.NET開源編程

使用Mono進行.NET開源編程 作者: Tony Patton

Mono是一種基於.NET Framework的開放源代碼平臺。本文介紹了該平臺如何提供在Windows、OS X 和多種UNIX/Linux下靈活的開發機制。

 

什麼是Mono?

Mono的誕生基於這樣一個事實:C#語言和CLI(Command Language Infrastructure即通用語言構架)已經爲ECMA作爲標準而接受。Mono庫包括了.NET兼容庫(包括ADO.NET、System.Windows.Forms和ASP.NET)以及Mono所指定的第三方類庫。用戶還可以將Mono運行時(runtime)嵌入到應用程序中,使得程序的打包和發佈更爲簡便。此外,Mono提供了一個IDE,一個調試器,還有一個文檔瀏覽器。

如何安裝Mono

Mono可以從該項目的Web站點中免費獲取(http://www.mono-project.com/Downloads),你可以選擇下載Linux(通用安裝版本,支持SUSE和Red Hat)、Windows和OS X下的不同版本。你可以下載全部的源代碼並對其進行編譯(如果你的平臺不支持以上三種版本,這將是唯一的辦法),或者是直接下載合適的安裝包。本文中我們按照下載安裝包的方式進行敘述。

一旦根據你使用的平臺下載了所需的安裝包後,安裝過程將隨操作系統不同而有所不同。在編寫本文時,我將Mono安裝在了運行Windows XP和SUSE Linux 9.2的兩臺計算機上。在Windows環境下,安裝過程非常簡單,只需要下載安裝包然後在系統上運行就可以了。而另一種操作系統處理起來則有些麻煩。Linux環境下的安裝包括多個單獨的文件,這些文件同Mono平臺的不同方面功能相關。這裏是Mono針對SUSE的部分軟件包:

* mono-devel-1.0.6-1.ximian.9.1.i586.rpm—Mono核心包和C#編譯器

* mono-core-1.0.6-1.ximian.9.1.i586.rpm—Mono核心運行時

* mono-data-1.0.6-1.ximian.9.1.i586.rpm—數據庫核心

列表中的每一個文件都是RPM(Red Hat Package Manager)文件。這些文件需要在Linux環境下使用rpm命令行工具進行安裝。例如,使用如下命令就可以安裝Mono運行時:

rpm – i mono-core-1.0.6-1.ximian.9.1.i586.rpm

在安裝結束之後,你需要立即將相關目錄添加到系統目錄中去,這樣就可以無需指定完整路徑來使用相關命令。在Windows下你需要通過控制面板來實現,Linux中則是使用PATH命令。注意:如果在安裝過程中遇到任何問題,我建議你訪問Got Mono? Web站點(http://www.gotmono.com/)。它能夠爲你排除故障提供很好的參考。

Mono工具集

在安裝完Mono之後,你或許會用到它的各種工具。以下就是這些工具的一部分:

* mono—Mono解釋器。允許在沒有JIT的情況下執行應用程序。這一工具允許從命令行中運行應用程序。在微軟.NET Framework下沒有相關的工具。

* mcs—C#編譯器。該編譯器接受的命令行選項同微軟C#編譯器完全相同。

* monodies—該工具允許將應用程序轉換爲IL(Intermediate Language即中間語言)。它的功能類似於微軟的ildasm.exe。

如果要獲取工具的完整列表,請參閱Mono文檔。該文檔對每一種命令的選項都進行了描述。

創建Mono應用程序

現在我們來通過創建一個簡單的應用程序來看看如何使用這些工具。如下代碼將向控制檯輸出一條簡單的信息:

 

using System;

namespaceBuilder.Samples {

public class MonoDemo {

public static void Main(string[] args)

{Console.WriteLine("Check out 

Builderau.com.au");

} } }

我們將以上代碼保存爲MonoDemo.cs,隨後使用Mono的C#編譯器:

mcsMonoDemo.cs

 編譯結果是生成了MonoDemo.exe文件。該文件的.exe擴展名在Windows環境下而言非常常見,但對Linux系統則不是。

因此,我們通過命令行解釋器來運行我們的例子程序:mono MonoDemo.exe。這一例子的關鍵在於我們可以在Windows、Linux、Mac OS X等任何能運行Mono或the Windows .NET Framework的平臺上運行編譯之後的文件。這是因爲Mono編譯器將代碼編譯爲人們熟知的IL中間形式。微軟的C#編譯器也完成相同的工作,但Mono並沒有完整的安裝.NET的類庫,它安裝了額外的Mono指定庫。因此,並不是所有通過Mono開發的應用程序都可以在微軟.NET Framework下運行,反之亦然。

因此,在確定目標平臺和以後對兼容性的需求時,你必須把上面這點考慮在內。你還應當經常訪問Mono站點。由於該站點經常會提供一些新的功能(例如類庫),你可以使自己的項目保持隨時更新。對微軟產品而言同樣如此。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章