西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)其它知識(shí) → 在linux上怎么開(kāi)發(fā)asp.net mvc3網(wǎng)站圖文教程

在linux上怎么開(kāi)發(fā)asp.net mvc3網(wǎng)站圖文教程

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2014/2/15 12:45:42字體大。A-A+

作者:西西點(diǎn)擊:132次評(píng)論:0次標(biāo)簽: mvc3

  • 類型:編程控件大。22.2M語(yǔ)言:中文 評(píng)分:5.6
  • 標(biāo)簽:
立即下載

最近一直想體驗(yàn)下mono在web開(kāi)發(fā)上到底進(jìn)展到什么程度,挑戰(zhàn)一下它對(duì)web開(kāi)發(fā)的極限。因?yàn)閍sp.net mvc本身依賴windows平臺(tái)的東西不太多,所以這些assembly移植到mono/linux上來(lái)應(yīng)該不是大問(wèn)題。網(wǎng)上很多人很早也介紹了相關(guān)主題,但是他們大部分是基于這樣的模式:在Visual Studio里開(kāi)發(fā)asp.net mvc網(wǎng)站,然后再部署到linux上。我個(gè)人覺(jué)得這種做法只能驗(yàn)證mono運(yùn)行時(shí)有支持asp.net mvc的能力,這個(gè)確實(shí)也在mono 2.10的release note里提到了。但是如果想要在linux上開(kāi)發(fā)asp.net mvc網(wǎng)站怎么辦呢?有同學(xué)會(huì)說(shuō):那在linux上裝個(gè)虛擬機(jī)做開(kāi)發(fā)吧~~

本文我將會(huì)介紹怎樣在linux上用用monodevelop開(kāi)發(fā)一個(gè)簡(jiǎn)單的asp.net mvc3網(wǎng)站。asp.net mvc3是mono運(yùn)行時(shí)目前支持的最新的版本,這個(gè)版本相對(duì)2比較成熟點(diǎn) 。然后會(huì)介紹我在這個(gè)過(guò)程中碰到的一些問(wèn)題以及解決辦法。從下面這個(gè)截圖,我們可以知道請(qǐng)求是從ubuntu Chromium/28.0.1500.52上發(fā)出的,我本機(jī)是linux mint,屬于ubuntu系的,再查看response,可以知道asp.net版本是4.0.30319,mvc版本是3.0,我用的開(kāi)發(fā)服務(wù)器是Mono.WebServer.XSP/3.0.0.0。

既然我們的目的是帶有探索性的,那么我采用的是最近的源碼,從github上我獲取了3個(gè)項(xiàng)目:mono,monodevelop,xsp。第一個(gè)是mono運(yùn)行時(shí),第二個(gè)是IDE,第三個(gè)是開(kāi)發(fā)版Web服務(wù)器。我會(huì)把所有的這些項(xiàng)目都安裝到/usr/local目錄下,以免跟從軟件源里安裝的版本沖突,另外,因?yàn)楫吘故遣环(wěn)定版本,如果貿(mào)然裝到/usr下的話,系統(tǒng)也不穩(wěn)定。首先編譯mono運(yùn)行時(shí),這個(gè)可以參考我以前的一篇文章 在Linux Mint13下編譯安裝mono運(yùn)行時(shí) 。接下來(lái)就是編譯IDE,不出意外您也應(yīng)該跟我一樣碰到一些編譯錯(cuò)誤,主要是由于引用的DLL找不到引起的。很多依賴的csharp binding assembly找不到,例如,glib-sharp,gtk-sharp等,解決方法就是把這些assembly的pc文件從/usr/lib/pkgconfig下拷貝到/usr/local/lib/pkgconfig。下面看看gtk-sharp-2.0的pc文件的一部分,我們看它的第一行prefix是一個(gè)相對(duì)值,在拷貝到/usr/local/lib/pkgconfig之后,gtk-sharp.dll在/usr/local下仍然找不到,因此需要把它變成一個(gè)絕對(duì)路徑prefix=/usr。

然后我把我這邊/usr/local/lib/pkgconfig目錄下所有的pc文件截個(gè)圖出來(lái)

等build通過(guò)后,在monodevelop目錄下運(yùn)行make run,這樣就啟動(dòng)IDE了。

我用gtksharp拖出了個(gè)簡(jiǎn)單的界面,編譯,運(yùn)行,調(diào)試,都可以的。神器阿~~~~

接下來(lái)再編譯xsp的源碼。我本打算用源里的那個(gè)xsp,但是編譯出來(lái)的IDE總是報(bào)找不到xsp,這個(gè)我就沒(méi)有深究,因?yàn)榭梢詙y的原因?qū)嵲谔啵幌肜速M(fèi)時(shí)間調(diào)查這個(gè)。所以就決定自己編譯xsp。沒(méi)想到編譯相當(dāng)順利并且快(1分鐘左右在我機(jī)器上),出乎意料。xsp源碼里自帶了一個(gè)測(cè)試用的asp.net網(wǎng)站,然后我切換到目錄/usr/local/lib/xsp/test目錄下運(yùn)行xsp4,服務(wù)器在端口9000上起來(lái)了。

在瀏覽器中輸入localhost:9000,很cool,asp.net網(wǎng)站在linux上運(yùn)行了。但是有些asp.net web控件顯示錯(cuò)誤,例如menu,grid。因?yàn)檫@些控件的實(shí)現(xiàn)依賴gdi+,所以我從源里安裝libgdiplus,也需要把它的pc文件拷貝到/usr/local/lib/pkgconfig下。這樣,整個(gè)test網(wǎng)站顯示都沒(méi)問(wèn)題了。

接下來(lái)在IDE中建asp.net mvc項(xiàng)目,簡(jiǎn)單起見(jiàn),先從v2開(kāi)始。這個(gè)過(guò)程沒(méi)啥問(wèn)題,xsp正常啟動(dòng),網(wǎng)站能夠?yàn)g覽,目前能調(diào)試時(shí)動(dòng)態(tài)修改代碼但不能立即生效,問(wèn)題不大。然后做v3,問(wèn)題來(lái)了。第一就是項(xiàng)目的引用DLL System.Web.Helpers.dll和System.Web.WebPages.dll 就標(biāo)紅,提示找不到。System.Web.Helpers.dll確實(shí)在mono運(yùn)行時(shí)里沒(méi)有,然后我看了一下這個(gè)DLL的實(shí)現(xiàn),認(rèn)為它沒(méi)啥大關(guān)系,所以就直接刪掉了。System.Web.WebPages.dll在/usr/local/lib/mono/4.5下是有的,并且也在gac下注冊(cè)了,并且我項(xiàng)目的targetFramework也是指定的4.5,它標(biāo)紅就有點(diǎn)想不通了,有知道答案的同學(xué)請(qǐng)通知一聲。后來(lái)我也把它刪掉了,但是必須把System.Web.WebPages.dll拷貝到項(xiàng)目的bin目錄下,因?yàn)閞azor在解析頁(yè)面的時(shí)候需要用到它,否則頁(yè)面也展現(xiàn)不出來(lái)。這個(gè)后面會(huì)說(shuō)。接下來(lái)的一個(gè)問(wèn)題更頭痛,xsp在mono 4.5下怎么也啟動(dòng)不起來(lái)。在v2時(shí),因?yàn)槟繕?biāo)framework默認(rèn)是4,所以沒(méi)問(wèn)題。好在所有涉及到的代碼都可以直接調(diào)試,發(fā)現(xiàn)xsp服務(wù)器在初始化asp.net運(yùn)行時(shí)時(shí)Configuration沒(méi)有重新初始化好,一讀appSettings就報(bào)錯(cuò)。后來(lái)把target framework改成4就沒(méi)問(wèn)題了。終于,網(wǎng)站可以訪問(wèn)了,但是頁(yè)面展現(xiàn)時(shí)報(bào)錯(cuò),網(wǎng)頁(yè)上的錯(cuò)誤信息非常模糊,說(shuō)Home/Index.cshtml找不到,我了個(gè)去,明明在那兒阿,挑戰(zhàn)理解極限阿~~~繼續(xù)調(diào)戲,注意是被調(diào)戲~~~原來(lái)web.config里有幾個(gè)引用的assembly沒(méi)找到,我刪除了System.Web.Helpers.dll的引用。然后System.Web.WebPages.dll的版本不是1.0而是2.0。如果大家有什么問(wèn)題歡迎交流。 

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)