程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 在Mono中創建ASP.NET程序

在Mono中創建ASP.NET程序

編輯:ASP技巧

一只可愛的猴子:


一次偶然的機會碰到這只猴子,並在工作中也用到它了。現將自己的使用經驗分享與此(以OpenSUSE為例介紹)。

 


對於不熟悉Mono的朋友來說,Mono就是.Net在Linux和其它操作系統上的實現(Unix、Mac、iphone、Windows...)。Mono的官方網站是:http://www.mono-PRoject.com

嚴格來講,Mono是一個開源的、跨平台的C#語言和其CLR的實現,並與微軟的.NET二進制兼容。很繞口吧,這是Mono官方網站寫的:An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.Net。

 


Mono最新的版本是Mono 2.6, MonoDevelop最新的版本是MonoDevelop 2.2

 


說到Mono,不能不提Miguel De Icaza,這位大牛是Mono項目的發起者,此人也是GNome的創始人之一,並創建了Ximian公司,此公司連同Mono後被Novell公司收購,並擔任Novell公司開發者平台副總裁,這是這位大牛的博客http://tirania.org/blog/ 。Novell公司是Mono的贊助者和主推者,並在其桌面版Linux OpenSUSE將Mono作為默認配置,更要命的是,Novell也將Mono作為其服務器版Linux Enterprise的默認配置,由此可見Novell的雄心勃勃。

 


只談Mono似乎是不夠的,和.Net一樣,Mono也有與Visual Studio一樣強大的集成開發環境IDE

MonoDevelop。MonoDevelop大大的提升了開發效率,這也是選擇Mono的主要原因。

 


根據我的想法,現在總結一下Mono的使用場合:

1. 與其它語言相比更熟悉.NET或熱愛.Net,且需要在Linux做開發(我就是屬於這種情況^_^)

2. 節省開發成本,因為光Visual Studio就比Windows賣的還貴,而且價格還要受License限制,當然,盜版猖獗的中國大陸,開發似乎是零成本,可以說沒幾個公司用的是正版的Visual Studio開發。這也是Mono在中國不被看重的原因,大家都只是因為新奇而對Mono閒聊一番。

3. 移植Windows上的.Net程序到Linux上

 


也許有人擔心Mono的穩定性,其實國外已有很多Mono開發的應用,具體可以參考http://www.mono-project.com/Companies_Using_Mono,這裡不僅有小的桌面工具,也有服務器級的應用。

 


也有人擔心Mono的版權問題,由於C#已經是國際標准,問題主要集中在ADO.Net和WinForm上。目前微軟是與Novell在Mono上進行著合作,但不能保證將來微軟的威脅。當然,Novell也有自己的措施來處理。比如,采用GTK#編寫GUI程序。但微軟也提出了一項“Community Promise”的專利許可,並與2009年7月6日正式apply(不知道怎麼翻譯),其針對ECMA C# 和 ECMA CLI standards。具體參考http://www.mono-project.com/news/archive/2009/Jul-06-1.html和http://www.microsoft.com/interop/cp/default.mspx

 


當然,Mono也包含asp.net,因為Windows帶有Web服務器IIS,Mono也自帶一個叫XSP輕量級的Web服務器,XSP也是用100%純C#實現的。我認為XSP主要用在實驗室或小型網站,其最大的優點是能在MonoDevelop中進行調試。若做商用的網站或Web服務,可以考慮apache+mod_mono方式,mod_mono是為Mono的ASP.Net開發的用於apache上的模塊,其功能類似IIS中的wp_ASPnet。

 


Mono幫助文檔:由於Mono中文資料比較少

對於Mono開發過程中遇到問題,可以查看Mono的在線文檔http://mono-project.com/Start,或者去Mono Forum發帖http://go-mono.com/forums/(先google一番,因為自己遇到的問題別人已經遇到過)

 


若在Linux中使用Mono,可以采用在本地(Windows)安裝Linux虛擬機或者使用XManager遠程到Linux服務器2中方式。

1-在本地安裝Linux虛擬機:

安裝VmWare WorkStation

下載地址:http://www.vmware.com/cn/

也可以下載含有Mono的虛擬機鏡像文件http://www.go-mono.com/mono-downloads/download.html,這樣就可以直接安裝免費的VM Player就可以了,不用再創建並安裝虛擬機了。

安裝虛擬機前,需要進入BiOS,設置VIRTULIZATION 為ENABLED

 


2-如果Linux服務器在遠程的話,需在本地安裝Xmanager 並在遠程Linux上配置XManager,在Linux上配置Xmanager如下所示:

1)修改運行級別為5,可先運行runlevel命令,如果輸出 N 5就不用改了,若不是,修改/etc/inittab,改變runlevel為5,例如

[root@sys]# cat /etc/inittab

id:5:initdefault:

2)編輯/etc/X11/xdm/XAccess,去掉這一行的注釋:

# * #any host can get a login window

改為

* #any host can get a login window

3)編輯/etc/X11/xdm/xdm-config,注釋掉這一行:在displayManager.requestPort:0前面加上一個!號,結果如下

DisplayManager.requestPort: 0

改為

!DisplayManager.requestPort: 0

4)編輯/etc/opt/gnome/gdm/gdm.conf,在[xdmcp]部分,修改Enable為true,

[xdmcp]
Enable=0(或false)

改為

[xdmcp]
Enable=1(或true)

取消這一行的注釋:

#Port=177

改為

Port=177

5)編輯/etc/sysconfig/displaymanager,有兩個相關變量:DISPLAYMANAGER_REMOTE_Access和DISPLAYMANAGER_ROOT_LOGIN_REMOTE,根據自己的需要進行修改。

6)最後,如果我們的Linux機器配置有防火牆,為防止防火牆將通過177端口(即xdmcp服務)的數據過慮,我們必須加上如下的規則:

iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

7) rcxdm restart

 


本地xmanager的設置:

1,運行xbrowser。

2,new一個新的session

3,選擇XDMCP

4,Method中根據自己與主機所處網絡類型設置,比如是否是局域網等等

如果自己與主機不在同一網段,Method設置為XDM Query

host中寫入Linux服務器的ip地址port默認177

5,next->next->finish

如果連接不上,請輸入命令 netstat –ln | grep 177,查看177端口是否處於監聽狀態。

 


安裝Mono

由於OpenSUSE或SUSE Enterprise默認安裝了某一版本的Mono,如果想要用最新版本Mono的話,不需卸載以前的版本,直接安裝新版本的Mono即可。

 


安裝Mono可以采用以下2種方式:

1-用YAST在線升級,這種方式適合電腦連接到Internet上。

打開YAST->軟件管理,選擇所有和Mono有關的安裝包,進行安裝。

若采用其它安裝源,則打開YAST->安裝源,添加新的安裝源。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved