1. 程式人生 > >ASP.NET 5 (vNext) 理解和概述

ASP.NET 5 (vNext) 理解和概述

 概述

ASP.NET 5 (又稱為vNext) 是自ASP.NET產生15年以來一次革命性的更新, 我們可以從以下幾點來理解其概貌和意義:

  • ASP.NET 5是開源的
  • ASP.NET 5開發的WebApp是跨平臺的: 目前可以確認的平臺包括Windows, Linux和Mac
  • ASP.NET 5是完基於OWIN標準, 已經全與System.Web.dll脫離. 換言之,vNext不一定要架設在IIS上面.
  • ASP.NET 5是完全元件化開發, 開發者可以從無到有自行選擇其中的功能元件.
  • ASP.NET 5完美支援雲部署
  • ASP.NET 5開發環境需要 VS 2015 支援

執行環境

ASP.NET 5 執行的全新的執行環境框架: .NET Execution Environment (DNX) 中.

DNX簡言之就是整合了所有需要的SDK和執行時環境的相關內容, 以便於.NET應用能夠跨平臺執行. DNX是一個全新的概念, 如果要深入瞭解, 請移步官方文件 DNX Overview.

元件管理

用VS 2013 的同學都能夠猜到了,2015 的元件管理就是Nuget, 而且同時還支援NPM 安裝Node.Js元件.

但VS2015比VS 2013 更加嚴格, Nuget已經不是可選項而是必選項,直接新增DLL的模式被取消.所有元件必須通過Nuget方式進行新增.

啟動類

ASP.NET 5 的唯一啟動入口是 Startup類 (瞭解OWIN的同學並不陌生), 其樣例程式碼一般為:

public class Startup
{
     public void ConfigureServices(IServiceCollection services)
     {
     }

     public void Configure(IApplicationBuilder app)
     {
     }
}

ConfigureService方法用於定義整個應用中的服務 (Service), 而Configure方法用於定義整個應用中載入的中介軟體 (Middleware)

服務 (Service)

基於依賴注入的元件實現,比如原來Controller裡面的Attribute就是比較典型的Service元件,ASP.NET 5 內建有一定的預設Service,但它們也能很方便的通過ConfigureServices函式進行替換.

中介軟體(Middleware)

基於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標準的中介軟體並加入應用.

伺服器(Server)配置

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版本進行研究.

注意在建立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 的後續介紹文章,第一篇已經完成,請有興趣的同學移步:

參考資料