[ASP.NET 5]ASP.NET 5概念簡介

  • 470
  • 0
  • 2016-03-05

摘要:[ASP.NET 5]ASP.NET 5簡介

概念-ASP.NET 5 簡介

這篇文章主要是翻譯及參考ASP.NET Doc-Introduction to ASP.NET 5之後的心得分享,若有謬誤及差別,請以ASP.NET Doc-Introduction to ASP.NET 5為準。

ASp.NET 5 簡介

ASP.NET 5 是一個全新的open-source及跨平台的Framework,可用以建立一個雲端based的Web Application。透過重新改寫以及模組化,ASP.NET 5可以有彈性的使用最少的模組以彈性的建構solution,也可以建立host在跨Windows, Mac, Linux平台的Web Application。

ASP.NET 5做了很多架構性的修改,以變得更輕巧及模組化。ASP.NET 5已經不再架構於System.Web.dll上,而是使用一系列的Nuget Package來讓你自己最有效率的組裝自己想要的Web Application。同時,有需要才加入Package的使用方式,會讓Web Application更安全,更有效率。

另外,這幾年Web前端的快速演進,發展出許多的Framework、工具及流程,ASP.NET 5也將其整合進來。透過更多樣化的環境設定檔,以及內建的dependency injection,讓ASP.NET 5的Web Application可以輕鬆地掛載在雲端的環境。

ASP.NET可以跨平台的在Windows, Mac, Linux上進行開發,它是open source的,更便於開發社群的分享及貢獻。基於不同平台的開發習慣,ASP.NET 5也提供完整的command-line工具,讓習慣使用command-line的開發人員,或是習慣Visual Studio的開發人員,都可以使用自己慣用的方式進行開發。

ASp.NET 5 解析

ASP.NET 5是建置於.NET Execution Environment (DNX)之上,每個ASP.NET 5 project都是一個DNX Project。ASP.NET 5可透過 ASP.NET Application Hosting package 來與DNX進行整合。

每一個ASP.NET 5都會有一個Startup的class,如下方的Code。 CODE-01

其中ConfigureServices這個method是用來定義Appication中所使用到的services。而Configure這個method則是用來定義處理request pipeline的流程中所使用到的middleware

Services

Service是使用在Web Appication中的元件,例如:Entity Framework service, Identity service, MVC service。ASP.NET 5提供了內建了簡單的 IoC container ,預設可使用constructor injection。而Service則透過dependency injection的機制注入到ASP.NET 5中。如果要替換IoC Container也可以輕易地辦到。

在ASP.NET 5中,Services有三種varieties:singleton, scoped and transient。Transient 的services會在每次對container提出request時建立。對Web Application來說,Scoped的services則是每一次的Web Reuqest就產生一次。Singleton的services則只會產生一次,然後重複使用。

Middleware

ASP.NET 5使用Middleware來處理request pipeline,目前內建了幾個Middleware如下:

Servers

ASP.NET 5透過Application Hosting model來處理HTTP Request。他不會直接listen這些request,而是透過實作HTTP Server的元件來處理。

ASP.NET 5可以支援IIS或是self-hosting的方式掛載Server,在Windows的環境下,可以使用Web Listener Server掛載在IIS Server 之外。在非Windows的作業系統中,可以使用跨平台的Kestrel web server


參考