vNext又稱MVC 6.0,不再需要依賴System.Web,佔用的記憶體大大減少(從前無論是多麼簡單的一個請求,System.Web本身就要佔用31KB記憶體)。
可以self-host模式運行,網站不再需要依賴IIS而運行,由此從此可以快速向客戶示範開發進度,以及更好地支援真正跨平台(Linux、Mac、Unix)。
Web Api、Web Pages與MVC完全融為一體,統稱MVC 6.0。在過去,輸出JSON,既可以使用MVC內建的return JSON,也可以使用Web Api,這樣分而治之的場面給整個社區都帶來不良影響(JSON僅是其中一個例子,其它很多功能都是一樣),現在,Web Api 完全融入了vNext,重複的輪子在這裡終於得到終結。
支援Poco形式的Controller,代碼更加乾淨。
雲最佳化技術,也就是說在開發階段,系統本身並不真正載入某個組件,而是在運行時才查詢合適版本的組件,由此帶來的好處是在Azure雲主機、Mono主機和Windows主機上可以依賴最合適當前環境的某個組件Dll。
內建了依賴注入架構
使用Roslyn編譯器,產生的程式碼更高效
與1~5.x的差異:
1:Project.json代替了從前的Web.config:
項目包的依賴項在dependencies節點中定義。
configurations節點儲存的是項目設定資訊。
commands節點儲存的是self-host配置參數,例如本地綁定連接埠號碼。
自訂節點,例如自訂一個Data節點,在它的範圍中再定義一個DefaultConnectionString來記錄資料庫連接字串。
2:Startup.cs代替了Global.asax
3:Views檔案夾中不再需要專門的Web.config
當你添加某個引用(例如Entity Framework)的時候,需要網路即時載入,所以如果遇到“找不到某某類庫”的錯誤時,不要擔心,過一會就好了。但是,有可能在某個良辰吉日裡,你無論等多久都沒用,因為我們身在天朝,你懂的。
================================================
MVC的基本概念不變,依然是從前的 RouteTable、Controller、View、Action、Razor、Model
下面的教程中涉及到載入包,以及各個包的版本號碼,例如"0.1-alpha-build-0403",也許你看到這篇文章的時候,版本號碼已經不適用了,最簡單的解決辦法是建立一個現成的ASP.NET vNext Web Application(注意不是空項目),它會載入當前可用的常用包,對照裡面的對應包的版本號碼。
如果需要輸出靜態檔案,例如 .html、.jpg,需要載入專門的處理流程,它們儲存在Microsoft.AspNet.StaticFiles中。
下面我們開始構建一個vNext網站:
建立一個ASP.NET vNext 空項目
之後得到的目錄結構,比從前簡單多了: