熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

在Linux上運行C#

2013-11-13 16:00:43  來源: Oracle 

  作者仙人掌工作室
  
  眾所周知C#是Microsoft推出的NET語言只能在NET平台上運行例如Win xMENTXP和Win CE之類的操作系統但是現在卻有了一個叫做Mono的項目它的目標就是把NET及其編程語言移植到非Windows的平台上現在C#是唯一被移植到非Windows平台的NET語言
  
  在任何一個平台(操作系統+硬件體系)上編寫和運行程序的三個最根本的需求是庫編譯器/解釋器運行環境庫以類和方法(函數)的形式提供常用的例程簡化大型程序的編寫NET框架也不例外包含了許多類庫另外把程序轉換成可執行形式以及運行執行文件時編譯器和運行環境是必不可少的Mono軟件包包含了NET類庫的一部分一個C#編譯器和NET運行環境CLR(Common Language Runtime公共語言運行時環境)
  
  Mono聲稱支持LinuxSolarisFree BSD和MS Windows除了Intel x系列的CPU(各類Pentium等)之外據說還要支持SparcPowerPC和Strongarm處理器
  
  下面就來看看如何在Linux上運行Mono
  
  
  命令行應用
  
  
  先從Mono主頁()下載軟件執行下面的命令安裝所有RPM
  
  rpm ivh *rpm
  
  
  
  安裝完成後所有基本的動態執行庫包括SystemDatadllSystemdllSystemDrawingdllSystemWebdll和SystemXmldll都被復制到/usr/lib下接下來在Linux文本編輯器中輸入下面的內容把文件保存為HelloMonocs
  
  class HelloMono
  {
  public static void Main(string[ ] args)
  { SystemConsoleWriteLine(Hello Mono);
  }
  }
  
  
  
  執行下面的命令編譯C#文件
  
  mcs HelloMonocs
  
  
  
  mcs是Mono的C#命令行編譯器與MS NET SDK的csc編譯器相似mcs也有很多命令行選項上面的命令將生成可執行文件HelloMonoexe注意這個執行文件不是Linux執行文件而是一個NET執行文件或者說這個文件的可執行代碼形式是中間語言(ILIntermediate Language)要運行這個執行文件必須執行如下命令
  
  mono HelloMonoexe
  
  
  
  Linux控制台上將顯示出Hello Mono關於mcs和Mono的更多說明請執行man mcs或man mono參考其man文檔
  
  
  GUI應用
  
  
  Mono不支持Windows Forms但在C#編程中可用GTK #編寫GUIGTK #是GTK+圖形庫的C#支持工具可從下載下載完成後先要安裝RPM
  
  rpm Uvh *rpm nodeps
  解開gtksharptargz
  tar zxvf gtksharptargz
  進入子目錄gtksharp執行
  /configure prefix=/usr
  make
  make install
  
  
  
  完成這一步驟之後重新啟動一次與GTK#有關的所有動態代碼模塊(gtksharpdllatksharpdllgdksharpdllglibsharpdll以及pangosharpdll)都會被復制到/usr/lib目錄編譯用GTK#制作GUI的C#程序時必須通過r參數引用它們GTK#下載包中包含了幾個示例程序如HelloWorldcsMenucsButtonAppcs等編譯這些文件的命令如下
  
  mcs r gtksharp r glibsharp HelloWorldcs
  mcs r gtksharp r glibsharp r SystemDrawing Menucs
  mcs r gtksharp r glibsharp r SystemDrawing ButtonAppcs
  
  
  
  下面來看看如何通過r選項引用前面各個dll動態模塊執行startx命令啟動X Window進入終端窗口再進入示例程序所在目錄執行下面的命令分別運行各個程序
  
  mono HelloWorldexe
  mono Menuexe
  mono ButtonAppexe
  
  
  
  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
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.