微軟的.NET架構與Linux開發和管理,是Buider AU和一個更廣泛行業的兩個最流行的主題。
大多數時候,這兩個主題往往會產生衝突,很少有開發人員需要同時瞭解這兩個工具。但是,許多人都沒意識到,其實我們可以通過開源mono計劃,把二者組合起來。本文將說明如何在Linux上安裝mono並運行基本的.NET應用程式。
首先你需要使用apt-get安裝基本mono軟體包。此時最好安裝其它兩個軟體包:monodevelop——一個在某些方面類似於Visual Studio(雖然遠不如Visual Studio複雜)的mono開發環境,和提供協助和技術文檔的monodoc。
啟動一個根終端並輸入:
% apt-get install mono monodevelop monodoc
完成後,mono應用即準備就緒,但這時你最好添加一些你需要的附加件。
% apt-get install mono-utils mono-xsp monodoc-http
如果你要從終端進行一部分開發工作,mono-utils可為你提供一些有用的工具 + 生產力。monodoc-http以Web服務方式提供 monodoc手冊,它需要mono-xsp獨立Web伺服器才能運行。mono包括mono C#編譯器mcs,但它僅能編譯.NET 1.1代碼,如果你希望使用.NET 2.0 C#特性(如非常有協助的generics),那麼你就需要gmcs:
% apt-get install mono-gmcs
如果你計劃使用monodevelop編寫你的代碼,那麼你可以安裝一些SVN、Java、NUnit、Boo和MonoQuery支援的許多軟體包:
% apt-get install monodevelop-versioncontrol monodevelop-java monodevelop-nunit monodevelop-boo monodevelop-query
同樣,如果你計劃使用monodoc(強烈建議使用),你可以為你將要用到的工具箱安裝手冊。
% apt-get install monodoc-nunit-manual monodoc-ipod-manual monodoc-gtk2.0-manual
在編寫代碼前,讓我們瞭解一下我們剛才安裝的一些工具。monodoc瀏覽器讓你查看你安裝的mono相關手冊,包括有益的C#語言規範參考。
或者,如果你願意的話,你也可以在Web瀏覽器中閱讀該文檔。monodoc-http程式啟動一個本地啟動並執行XSP伺服器,允許你與任何Web瀏覽器建立串連。
如果你願意,你還可以啟動monodevelop IDE,雖然在我們使用的例子中,你不需要這麼強大的功能。
現在我們通過試用一些代碼,檢查整個mono軟體包。以標準的C# Hello World程式為例:
using System;
namespace Hello {
class HelloWorld {
public static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
}
用mcs編輯後,通過mono命令運行;其結果如下:
上述代碼正常運行,但這是一個非常簡單的例子,它並不包括.NET最常用的部分:Windows Forms。下面我們來看看一個簡單的Windows Forms應用程式是否能夠運行。首先確保安裝了相關的庫:
% apt-get install libmono-winforms1.0-cil libmono-winforms2.0-cil
以下是原始碼:
using System;
using System.Windows.Forms;
namespace HelloClickWorld {
public class Hello : Form {
public static void Main (string[] args) {
Application.Run (new Hello ());
}
public Hello ()
{
Button button = new Button ();
button.Text = "Click...";
button.Click += new EventHandler (Button_Click);
Controls.Add (button);
}
private void Button_Click (object sender, EventArgs e)
{
MessageBox.Show ("Hello Click World!");
}
}
}
這次編譯器集要更複雜一些,因為你需要告訴C#編譯器包括Windows Forms庫:
% mcs -r:System.Windows.Forms hiclickworld.cs
% mono hiclickworld.exe
最後你需要保證ASP.NET能夠正常工作。以index.aspx為檔案名稱儲存以下代碼:
<%@ Page Language="C#" %>
<script runat="server">
void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Hi Click World!";
}
</script>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<form runat="server">
<asp:Button id="Button1" OnClick="Button1_Click" runat="server" Text="Button"/>
<asp:Label id="Label1" runat="server"/>
</form>
</body>
</html>
然後在那個目錄中啟動一個xsp伺服器。
最後一步,在Web瀏覽器中輸入http://localhost:8080/,檢查你用Linux建立的ASP.NET網站:
如果一切功能運轉正常,那麼全部mono即安裝完畢,這時你應該可以在Linux或Windows上開發應用程式,並在任意一個系統中進行部署。
警告:mono並不是一個完美的替代品,.NET架構的一些功能當前不能在mono中運行,特別是在Windows Forms部分;因此,如果你準備在mono中執行一些複雜的應用,或移植一個現有的.NET項目,一定要非常小心行事。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/lixinye0123/archive/2008/01/20/2054674.aspx