.net,C#,Asp.Net VisualStudio跟著微軟一步步走來,有成功,有喜悅,有收穫,但也有一種莫名的危機感,整理思路,規划下未來的道路:花四層左右的時間繼續跟著微軟的步伐,在比爾教主的大旗下繼續開拓疆土,同時花六成左右的時間將重心轉移到Linux,Php ,C/C++,Distributed File System於儲存,高並發、大資料量互連網架構上,看上去很多,當然夢想總是有的,只有一步一步往前走了!
因此這兩天轉移到linux上折騰一番,把Linux上開發環境搭建起來了,首先是.NET開發環境。mono這個東西早就聽說了,引用網上的介紹: Mono是一個由Novell公司(由Ximian發起,並由Miguel de lcaza領導的,一個致力於開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運行時,和一組類庫,並實現了 ADO NET和ASP NET,能夠使得開發人員在Linux用C#開發程式。一句話mono就是Linux上的.netframework。下面介紹mono的安裝:
在下機器的環境ubuntu10.04。
1、首先到官網下載mono,版本是:mono-2.6.7.tar.bz2
2、解壓、編譯、安裝
root@localhost:/home/guoyuanwei/下載 # tar -jxvf mono-2.6.7.tar.bz2
將解壓後的檔案夾放到常用的放軟體的地方,我的是/usr/mysoft/目錄下:root@localhost:/home/guoyuanwei/下載# mv mono-2.6.7 /usr/mysoft/
root@localhost:/usr/mysoft/mono-2.6.7# ./configure --prefix=/opt/mono這個是配置安裝目錄,準備將軟體安裝在/opt/mono下。(特別注意:在configure 編譯過程中需要用到g++和其它一些相關的編譯工具,在編譯過程中可看報錯資訊,按照報錯資訊中提示安裝所需要的工具。像我這裡就有一個錯誤:configure: error: You need to install bison,意思所缺少bison這個東西,只有先安裝在配置了。下載bison-2.5.tar.gz 進行安裝。)
# make
# make install
完成mono的安裝。運行命令
root@localhost:/opt/mono/bin# mono 初步測試下看安裝是否成功。為了在任何地方都可以運行mono命令,下面修改下環境變數:
#vim /etc/profile
在檔案末尾加上以下配置:
MONO_HOME=/opt/mono
PATH=$MONO_HOME/bin:$PATH
CLASSPATH=.:$MONO_HOME/lib/
export MONO_HOME
export PATH
export CLASSPATH
讓/etc/profile檔案修改後立即生效 ,可以使用如下命令:
# source /etc/profile
完成後重新登入,即可在任意位置運行momo命令
下面通過幾個簡單程式測試下mono環境安裝所否正確
(1)建立一個hello.cs檔案,敲入如下代碼:如果熟悉windows下C#開發的話,一看就知道這就windows 下的控制台程式哦!
using System; public class HelloWorld{static public void Main (){Console.WriteLine ("Hello Mono World");} }
編譯檔案: root@localhost:/home/guoyuanwei/GYWStudy# gmcs hello.cs(注意:如果這個時候沒有安裝gmcs編譯器,會提示出錯程式“gmcs”尚未安裝。 您可以使用以下命令安裝:
apt-get install mono-gmcs,gmcs是C#的編譯器,支援2.0的運行時,現在最新的好像是4.0的運行時裡,命令所dmcs,可以查看官方文檔看看2.0的運行時支援哪些C#特性)
編譯成功後會生存一個hello.exe的檔案,運行下面命令,得到結果。
# mono hello.exe
Hello Mono World
(2)接下來在做個Windows表單程式的實驗。
using System;using System.Windows.Forms;public class HelloWorld : Form{static public void Main (){Application.Run (new HelloWorld ());} public HelloWorld (){Text = "Hello Mono World";}}
Windows表單程式開發,你必須在linux下面安裝 System.Windows.Forms這個程式集所在的包,實際上就是一個GUI開發的工具包。不過在Linux下作windows表單程式的開發,感覺沒多大必要。選擇mono的原因就所為了利用C#強大的文法特性在linux上開發高效的軟體。
編譯:# gmcs hello.cs -pkg:dotnet(注意:這裡有一個編譯選項-pkg:dotnet,這個是添加程式集的應用,因為我們在程式裡面用到了標準的windows表單程式的命名空間,如果編譯出現找不到到包的錯誤,可能是環境變數的問題,添加一個環境變數PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig,這個是我的mono安裝路徑,具體情況看你的路徑)
運行:# mono hello.exe
結果彈出一個表單程式出來。
(3)Linux形介面軟體開發GTK#
using Gtk;using System; class Hello { static void Main() { Application.Init (); Window window = new Window ("helloworld"); window.Show(); Application.Run (); }}
上面的程式用到了gtk庫,所以要安裝GTK#才能編譯通過,按照配置-》編譯-》安裝進行。
root@localhost:/usr/mysoft/gtk-sharp-2.12.11# ./configure --prefix=/opt/gtk-sharp
配置的過此中我遇到了次錯誤:
checking for csc.exe... no
configure: error: You need to install either mono or .Net
這個錯誤害人不淺,搞了我好幾個小時,表面上說是找不到csc.exe程式,實際上不是,是因為在配置的過程中找不到mono.pc這個檔案所造成的,而這個mono.pc在安裝後的mono下面。
所以需修改環境變數,增加一個PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig在檔案etc/profile中。
# make
# make install 安轉完畢。
有了此利器,linux下面的圖形介面軟體開發不再是難事。
(4)上面的編碼,編譯,運行都所通過命令列完成,想想強大VisualStudio開發工具,在linux上自然也有,那就是monodevelop