1. 什麼是APS.NET 5web
ASP.NET 5是一個可構建基於雲服務的Web應用的構架,而且它是開源的和跨平臺的。咱們提供了從新設計的一個能夠部署在本地和雲服務的優化框架。它由一個一個模塊組成,所以你能靈活地構建你的應用。你能夠開發並運行在Windows, Mac, Linux上面。json
2. 爲何構建ASP.NET 5安全
初版ASP.NET 1.0開始於15年前,從那之後成千上萬的開發者開始使用它來建立本身的Web應用程序,以後的幾年,咱們增長了許多的功能。服務器
ASP.NET5 咱們作了很多的架構改變使它更加地簡潔和模塊化。它不在基於System.Web.dll, 而是使用Nuget來優化構建你所須要的組件。你能避免應用程序的臃腫提升安全性,減小服務壓力,還能提升性能。架構
ASP.NET5 是考慮到現代WEB應用程序的情況而建立的,它包括一個統一的方式建立Web UI和Web APIs,並集成了當今流行的客戶端框架和開發流程。ASP.NET5基於雲端的引用環境的配置和提供內建的DI支持。app
爲了提供更多的開發者的需求,ASP.NET5 支持跨平臺,整個ASP.NET5棧是開源的而且鼓勵開源社區的貢獻和參與。 ASP.NET 5 能夠用Visual Studio來建立,同時它也提供了不少強大的命令接口,使你能夠用其它的開發工具開發。框架
總結下來,ASP.NET 5 你能夠獲得以下的功能提高:異步
* 一個輕量級的模塊化的HTTP請求管道模塊化
* 能夠宿主在IIS或者本身的應用程序當中函數
* 基於.net core, 支持不一樣版本應用程序的開發
* 經過NuGet來下載所須要的DLL
* 集成了建立和使用NuGet包的功能
* 統一的Web UI, APIs 棧
* 雲計算環境的至關配置
* 內建型的DI
* 新的能夠簡化Web開發的工具
* 建立而且運行與跨平臺的應用
* 開源而且支持社區的貢獻
3. 應用程序剖析
ASP.NET5 用DNX來建立和運行應用程序。每個ASP.NET 5工程就是一個DNX 工程,ASP.NET 5經過ASP.NET 應用宿主包與DNX集成在一塊兒。
ASP.NET5 應用程序用Startup 類來定義應用程序
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{}
public void Configure(IApplicationBuilder app)
{}
}
ConfigureServices方法定義你的應用程序須要的服務,Configure方法定義使用的中間件。
4. 服務
服務是一組公共的組件,它經過DI來建立,ASP.NET5提供一個內建的簡單的IOC容易來建立,可是它也能夠被其它的IOC容器代替。
服務在ASP.NET5中有三種生命週期,單例、範圍、暫時。對於Web應用程序,一個容器的範圍是基於每一個請求的,因此你能夠認爲建立一個服務的範圍生命週期是一個請求一個範圍。
5. 中間件
在ASP.NET5當中請求的管道是由中間件組成的,ASP.NET5的中間件執行異步的邏輯在一個HttpContext當中,而後可選擇地調用下一個中間件或者結束當前的request. 你通常在Configure方法中經過IApplicationBuilder的擴展函數來"Use"中間件。
ASP.NET5 提供了一系列的內建的中間件
* 靜態文件
* 路由
* 診斷
* 身份驗證
你也能夠建立本身的中間件, 你也可使用任何基於OWIN的中間件。
5. 服務器
ASP.NET應用程序宿主不直接監聽請求,而是依賴一層服務的實現把請求封裝到HttpContext而後再傳到應用程序當中。
ASP.NET5的服務器能夠在IIS上跑也能夠宿主在你本身的應用進程當中。 在Windows上面你除了用IIS也能夠用WebListener服務,它是基於HTTP.sys的。你也能夠在跨平臺的操做系統上用Kestrel 服務。
6. Webroot
Web根目錄是你存放HTTP應用的根目錄, 它能夠放Http 請求的靜態文件,在ASP.NET5當中它配置在project.json文件的webroot屬性當中。
7. 配置
ASP.NET5用了一個新的配置模型存放鍵值對,而不是原來的System.Configuration或者web.config. 這些配置被一系列的配置提供者讀取。內建的配置提供都支持不一樣格式的配置文件,如XML, JSON, INI等。另外環境變量能夠改變基於環境的配置。你也能夠自定義一個你本身的配置提供者。環境配置像開發和生產環境,在ASP.NET5裏很容易設置。例如:
var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json").AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if(env.IsDevelopment())
{
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
8. 客戶端的開發
ASP.NET5無逢地集成 了各類各樣的客戶端的框架,包括AngularJS, KnockoutJS還有Bootstrap.