作者
仙人掌工作室
眾所周知
C#是Microsoft推出的
NET語言
只能在
NET平台上運行
例如Win
x
ME
NT
XP和Win CE之類的操作系統
但是
現在卻有了一個叫做Mono的項目
它的目標就是把
NET及其編程語言移植到非Windows的平台上
現在
C#是唯一被移植到非Windows平台的
NET語言
在任何一個平台(操作系統+硬件體系)上
編寫和運行程序的三個最根本的需求是庫
編譯器/解釋器
運行環境
庫以類和方法(函數)的形式提供常用的例程
簡化大型程序的編寫
NET框架也不例外
包含了許多類庫
另外
把程序轉換成可執行形式以及運行執行文件時
編譯器和運行環境是必不可少的
Mono軟件包包含了
NET類庫的一部分
一個C#編譯器和
NET運行環境CLR(Common Language Runtime
公共語言運行時環境)
Mono聲稱支持Linux
Solaris
Free BSD和MS Windows
除了Intel x
系列的CPU(
各類Pentium等)之外
據說還要支持Sparc
PowerPC和Strongarm處理器
下面就來看看如何在Linux上運行Mono
命令行應用
先從Mono主頁()下載軟件
執行下面的命令安裝所有RPM
rpm
ivh *
rpm
安裝完成後
所有基本的動態執行庫
包括System
Data
dll
System
dll
System
Drawing
dll
System
Web
dll和System
Xml
dll都被復制到/usr/lib下
接下來
在Linux文本編輯器中輸入下面的內容
把文件保存為HelloMono
cs
class HelloMono
{
public static void Main(string[ ] args)
{ System
Console
WriteLine(
Hello Mono
);
}
}
執行下面的命令編譯C#文件
mcs HelloMono
cs
mcs是Mono的C#命令行編譯器
與MS
NET SDK的csc編譯器相似
mcs也有很多命令行選項
上面的命令將生成可執行文件HelloMono
exe
注意這個執行文件不是Linux執行文件
而是一個
NET執行文件
或者說
這個文件的可執行代碼形式是中間語言(IL
Intermediate Language)
要運行這個執行文件
必須執行如下命令
mono HelloMono
exe
Linux控制台上將顯示出
Hello Mono
關於mcs和Mono的更多說明
請執行man mcs或man mono參考其man文檔
GUI應用
Mono不支持Windows Forms
但在C#編程中可用GTK #編寫GUI
GTK #是GTK+圖形庫的C#支持工具
可從下載
下載完成後
先要安裝RPM
rpm
Uvh *
rpm
nodeps
解開gtk
sharp
tar
gz
tar
zxvf gtk
sharp
tar
gz
進入子目錄gtk
sharp
執行
/configure
prefix=/usr
make
make install
完成這一步驟之後
重新啟動一次
與GTK#有關的所有動態代碼模塊(gtk
sharp
dll
atk
sharp
dll
gdk
sharp
dll
glib
sharp
dll以及pango
sharp
dll)都會被復制到/usr/lib目錄
編譯用GTK#制作GUI的C#程序時
必須通過
r參數引用它們
GTK#下載包中包含了幾個示例程序
如HelloWorld
cs
Menu
cs
ButtonApp
cs等
編譯這些文件的命令如下
mcs
r gtk
sharp
r glib
sharp HelloWorld
cs
mcs
r gtk
sharp
r glib
sharp
r System
Drawing Menu
cs
mcs
r gtk
sharp
r glib
sharp
r System
Drawing ButtonApp
cs
下面來看看如何通過
r選項引用前面各個
dll動態模塊
執行startx命令啟動X Window
進入終端窗口
再進入示例程序所在目錄
執行下面的命令分別運行各個程序
mono HelloWorld
exe
mono Menu
exe
mono ButtonApp
exe
Mono項目還在完善和發展之中
還沒有移植好全部
NET類
但不管怎樣
它對許多人來說將是一個好消息
有關Mono C#類庫移植進展的信息
請訪問/l
考慮一個典型的服務器/客戶機式
NET應用
最終用戶只與客戶端打交道
客戶端最好是方便的GUI應用
許多人還會希望使用熟悉的Windows平台
但是
對於他們來說
服務器端使用Windows還是Linux完全無關
所以
服務器端可以用帶有Mono的Linux構造
節省了配備專用Windows服務器的投資
Mono也將為應用遷移帶來方便
如果Mono能夠順利發展
Windows開發者也將能夠為Linux或其他非Windows平台開發應用
如果這樣的話
不久之後出現一個類似Visual Studio
NET但免費或廉價的Linux開發IDE也說不定
然而
所有這一切是否能夠成為現實
依賴於Mono是否能夠茁壯發展
也依賴於Mono與Windows平台上的
NET框架兼容或相似程度
另外一些因素也很關鍵
例如Mono的性能
GUI的友好程度等
From:http://tw.wingwit.com/Article/program/Oracle/201311/17671.html