ASP.NET 5 (又稱爲vNext) 是自ASP.NET產生15年以來一次革命性的更新, 咱們能夠從如下幾點來理解其概貌和意義:html
ASP.NET 5 運行的全新的運行環境框架: .NET Execution Environment (DNX) 中.web
DNX簡言之就是整合了全部須要的SDK和運行時環境的相關內容, 以便於.NET應用可以跨平臺運行. DNX是一個全新的概念, 若是要深刻了解, 請移步官方文檔 DNX Overview.json
用VS 2013 的同窗都可以猜到了,2015 的組件管理就是Nuget, 並且同時還支持NPM 安裝Node.Js組件.服務器
但VS2015比VS 2013 更加嚴格, Nuget已經不是可選項而是必選項,直接添加DLL的模式被取消.全部組件必須經過Nuget方式進行添加.app
ASP.NET 5 的惟一啓動入口是 Startup類 (瞭解OWIN的同窗並不陌生), 其樣例代碼通常爲:框架
public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } }
ConfigureService方法用於定義整個應用中的服務 (Service), 而Configure方法用於定義整個應用中加載的中間件 (Middleware)asp.net
基於依賴注入的組件實現,好比原來Controller裏面的Attribute就是比較典型的Service組件,ASP.NET 5 內置有必定的默認Service,但它們也能很方便的經過ConfigureServices函數進行替換.ide
基於OWIN的理論咱們能夠知道,咱們經過Middleware管理請求管道(Request Pipeline),這個和IIS已經徹底預設不少處理機制不一樣,若是沒有任何Middleware的加載,能夠認爲這個管道是空的. 咱們能夠經過Configure函數中的IApplicationBuilder參數的Use方法依次添加咱們須要的Middleware.函數
固然, ASP.NET 5 也提供了幾個標準的Middleware:組件化
•Working with Static Files : 主要指靜態文件功能,基於 ASP.NET StaticFile 組件.
•Routing: 主要指MVC和WebApi相關功能, 基於 ASP.NET Mvc 組件.
•Diagnostics: 主要指Logging相關功能.
•Authentication: 主要指用戶驗證相關功能,基於ASP.NET Identity組件.
另外開發人員能夠自定義任何符合Owin標準的中間件並加入應用.
ASP.NET默認狀況下, 支持IIS和Self-Hosting (基於WebListener組件) 2種服務器啓動方式, 注意這2種模式的功能是徹底一致的. Self-Hosting方式能夠很方便在Windows環境下脫離IIS來運行你的應用; 而在其餘平臺能夠選擇基於Owin標準的其餘Server實現,好比Kestrel web server. (代碼和實現是都是一致的)
在加載StaticFile的組件的同時,咱們須要同時設置整個項目的靜態文件根目錄,這個配置通常在項目配置文件: project.json 的「webroot」 屬性中,默認爲 wwwroot.
ASP.NET 5 使用了全新的配置文件體系, 新系統不在基於System.Configuration 或者 web.config, 新的配置文件體系內建了大量的配置文件提供組件 (configuration providers), 這些組件能夠很方便的支持多種配置文件類型 (XML, JSON, INI甚至系統環境變量), 開發者甚至能夠開發自定義的配置提供組件.
在默認狀況下,ASP.NET 5的配置文件通常爲project.json和config.json.
想嘗試的同窗能夠再這裏安裝 VS2015 RC版本進行研究.
https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx
注意在建立Web App的時候不要選擇上面的MVC 4.6, 而選擇下面的vNext.
MVC 4.6 和目前的機制大同小異, 意義不大.
默認項目裏面的Project_Readme.html文件裏面就有更多詳細的內容, 有興趣的同窗能夠一塊兒學習.
最後說2句,MS此次真的是拼了,開源,跨平臺,組件化; AngularJS, JQuery, BootStrap已經成爲標配, Grunt and Gulp登堂入室,甚至能夠直接進行Node.Js開發.
另外若是你還想跟着MS幹, ASP.NET 5 決對是值得考慮的升級.
關於ASP.NET 5 的後續介紹文章,第一篇已經完成,請有興趣的同窗移步: