.net,C#,Asp.Net VisualStudio跟着微軟一步步走來,有成功,有喜悅,有收獲,但也有一種莫名的危機感,整理思路,規划下未來的道路:花四層左右的時間繼續跟着微軟的步伐,在比爾教主的大旗下繼續開拓疆土,同時花六成左右的時間將重心轉移到Linux,Php ,C/C++,分布式文件系統於存儲,高並發、大數據量互聯網架構上,看上去很多,當然夢想總是有的,只有一步一步往前走了!
因此這兩天轉移到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