天天看點

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

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

建立和開發ASP.NET 5 項目

使用自定義配置檔案

參考資料

Introduction to ASP.NET 5

DNX Overview

Client-Side Development

軟體開發,項目管理,開發管理,團隊管理.

CMMI,PMP