Quantcast
Viewing all articles
Browse latest Browse all 144

ASP.NET MVC - ASP.NET MVC vNext ( MVC 6) 發佈與self host

此回介紹ASP.NET MVC的一個重大功能,self host與publish。

從MVC 5開始,ASP.NET MVC就開始計畫與實作傳說中的OWIN,OWIN的全名就是Open Web Interface for .Net;我們思索一下,從以前開始,ASP.NET都必須要掛載在IIS之上,而ASP.NET也從以前至今,都必須相依於system.web等等的Lib;換言之,沒有IIS,ASP.NET也就等於死翹翹…

而這個混亂的時代下,就出現了OWIN這種東西,將原本的相依性,透過定義好一個一個的介面,來達到未來抽換的一個目的。

好啦,講白一點,就是可以不用IIS就可以讓ASP.NET運作啦!!而所謂的self host,就是用命令模式的方式,讓程式在那邊監聽瀏覽器等的請求,而不用IIS啦!!

而到了新版的ASP.NET MVC這功能就更加強大了,所以第四回合,就來體驗一下吧!!

首先,我們要先透過NuGet載入一個監聽器,也就是底下的Microsoft.AspNet.Server.WebListener這個字串,當然我們要在project.json底下去新增… ( UI介面的趕快出來吧… );完成之後,我們再加上下面這段Commands,這個Commands可以定義要用哪個port監聽等等之類的命令列參數。

Image may be NSFW.
Clik here to view.
image

全部的json config如下,有需要的人就直接copy吧~

{
    "dependencies": {
        "Helios": "0.1-alpha-*",
        "Microsoft.AspNet.Mvc": "0.1-alpha-*",
        "Microsoft.AspNet.Server.WebListener": "0.1-alpha-*"
    },
    "commands": { /* Change the port number when you are self hosting this application */ 
        "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
    },
    "configurations": {
        "net45": {},
        "k10": { }
    }
}

完成後,我們就可以在命令列下使用k web這個指令來將常駐run起來 ( 可以參考KVM那篇 )。

( PS 因為我們Commands底下是"web" : xxxxx,所以用k web,如果是其他的字,例如"web8080" : xxx 那就要輸入k web8080,換言之,我們可以定義多個,來達到不同的目的。 )

好self host KVM那篇已經試驗過了,接下來我們看一下佈署。

基本上佈署的設定和之前沒啥兩樣。

Image may be NSFW.
Clik here to view.
image

但我們這邊準備要把WEB丟到USB ( 假設要丟到USB…實際上我是把他傳到另外一台電腦上面去RUN ),所以這邊選擇要佈署到File System。

Image may be NSFW.
Clik here to view.
image

就…打一下Customer Profile名稱…

Image may be NSFW.
Clik here to view.
image

然後選擇目錄。

Image may be NSFW.
Clik here to view.
image

完成後,其實可以發現,現在多了一個web.cmd這個檔案了;另外,大家可能會覺得…為啥有一堆MVC的Code…那是因為我們上一篇有把MVC的Source Code加入進來。

當然,這個這樣是不安全的,但大家也不用擔心啦,離整個發表,還有一年的時間(2015年),我們先體驗過程就好了~~

Image may be NSFW.
Clik here to view.
image

這時候,我們執行web.cmd,就可以得到如下圖的結果。

Image may be NSFW.
Clik here to view.
image

另外,如果copy到另外一台電腦,也不用做甚麼事情,就可以順利run了 ( 我的筆電上是沒有裝KVM的,但也是一樣可以跑得很開心~~ )

Image may be NSFW.
Clik here to view.
image

當然,能RUN起來的秘密,其實就是他把所有需要的東西,全部都放到Package裡面去了。( 當然,要run的電腦上還是要裝.Net Framework啦…不然空有dll,沒有環境可以Run,當然還是不行;而這次透過這方式,可以讓Server端不用安裝一堆Package,而變成動態下載,也因此,我們不用再去找相對應的版本對應包,更加的方便了!!

Image may be NSFW.
Clik here to view.
image

大致上就這樣!!以後網頁也可以帶著走了喔!!


Viewing all articles
Browse latest Browse all 144