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

<div id="cnblogs_post_body" class="blogpost-body">原文:<a href="http://www.cnblogs.com/zergcom/p/4486966.html" class="" id="">ASP.NET 5 (vNext) 理解和概述</a><p></p><h1>&nbsp;概述</h1> <p>ASP.NET 5 (又稱爲vNext) 是自ASP.NET產生15年以來一次革命性的更新, 咱們能夠從如下幾點來理解其概貌和意義:</p> <ul> <li>ASP.NET 5是開源的</li> <li>ASP.NET 5開發的WebApp是跨平臺的: 目前能夠確認的平臺包括Windows, Linux和Mac</li> <li>ASP.NET 5是完基於OWIN標準, 已經全與System.Web.dll脫離. 換言之,vNext不必定要架設在IIS上面.</li> <li>ASP.NET 5是徹底組件化開發, 開發者能夠從無到有自行選擇其中的功能組件.</li> <li>ASP.NET 5完美支持雲部署</li> <li>ASP.NET 5開發環境須要 VS 2015 支持</li> </ul> <h1>運行環境</h1> <p>ASP.NET 5 運行的全新的運行環境框架: .NET Execution Environment (DNX) 中.</p> <p>DNX簡言之就是整合了全部須要的SDK和運行時環境的相關內容, 以便於.NET應用可以跨平臺運行. DNX是一個全新的概念, 若是要深刻了解, 請移步官方文檔 <a href="http://docs.asp.net/en/latest/dnx/overview.html">DNX Overview</a>.</p> <h1>組件管理</h1> <p>用VS 2013 的同窗都可以猜到了,2015 的組件管理就是Nuget, 並且同時還支持NPM 安裝Node.Js組件.</p> <p>但VS2015比VS 2013 更加嚴格, Nuget已經不是可選項而是必選項,直接添加DLL的模式被取消.全部組件必須經過Nuget方式進行添加.</p> <h1>啓動類</h1> <p>ASP.NET 5 的惟一啓動入口是 Startup類 (瞭解OWIN的同窗並不陌生), 其樣例代碼通常爲:</p> <div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="複製代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="複製代碼"></a></span></div> <pre><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Startup { </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> ConfigureServices(IServiceCollection services) { }javascript

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Configure(IApplicationBuilder app)
 {
 }

}</span></pre>html

<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="複製代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="複製代碼"></a></span></div></div> <p>ConfigureService方法用於定義整個應用中的服務 (Service), 而Configure方法用於定義整個應用中加載的中間件 (Middleware)</p> <h1>服務 (Service)</h1> <p>基於依賴注入的組件實現,好比原來Controller裏面的Attribute就是比較典型的Service組件,ASP.NET 5 內置有必定的默認Service,但它們也能很方便的經過<strong>ConfigureServices</strong>函數進行替換.</p> <h1>中間件(Middleware)</h1> <p>基於OWIN的理論咱們能夠知道,咱們經過Middleware管理請求管道(Request Pipeline),這個和IIS已經徹底預設不少處理機制不一樣,若是沒有任何Middleware的加載,能夠認爲這個管道是空的. 咱們能夠經過<strong>Configure</strong>函數中的IApplicationBuilder參數的Use方法依次添加咱們須要的Middleware.</p> <p>固然, ASP.NET 5 也提供了幾個標準的Middleware:</p> <p>•Working with Static Files : 主要指靜態文件功能,基於 ASP.NET StaticFile 組件.</p> <p>•Routing: 主要指MVC和WebApi相關功能, 基於 ASP.NET Mvc 組件.</p> <p>•Diagnostics: 主要指Logging相關功能.</p> <p>•Authentication: 主要指用戶驗證相關功能,基於ASP.NET Identity組件.</p> <p>另外開發人員能夠自定義任何符合Owin標準的中間件並加入應用.</p> <h1>服務器(Server)配置</h1> <p>ASP.NET默認狀況下, 支持IIS和Self-Hosting (基於WebListener組件) 2種服務器啓動方式, 注意這2種模式的功能是徹底一致的. Self-Hosting方式能夠很方便在Windows環境下脫離IIS來運行你的應用; 而在其餘平臺能夠選擇基於Owin標準的其餘Server實現,好比Kestrel web server. (代碼和實現是都是一致的)</p> <h1>靜態文件目錄</h1> <p>在加載StaticFile的組件的同時,咱們須要同時設置整個項目的靜態文件根目錄,這個配置通常在項目配置文件: project.json 的「webroot」 屬性中,默認爲 wwwroot.</p> <h1>配置</h1> <p>ASP.NET 5 使用了全新的配置文件體系, 新系統不在基於System.Configuration 或者 web.config, 新的配置文件體系內建了大量的配置文件提供組件 (configuration providers), 這些組件能夠很方便的支持多種配置文件類型 (XML, JSON, INI甚至系統環境變量), 開發者甚至能夠開發自定義的配置提供組件.</p> <p>在默認狀況下,ASP.NET 5的配置文件通常爲project.json和config.json.</p> <h1>結束</h1> <p>想嘗試的同窗能夠再這裏安裝 VS2015 RC版本進行研究.</p> <p><a href="https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx">https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx</a></p> <p>注意在建立Web App的時候不要選擇上面的MVC 4.6, 而選擇下面的vNext.</p> <p>MVC 4.6 和目前的機制大同小異, 意義不大.</p> <p>默認項目裏面的Project_Readme.html文件裏面就有更多詳細的內容, 有興趣的同窗能夠一塊兒學習.</p> <p><strong>最後說2</strong><strong>句,MS</strong><strong>此次真的是拼了,</strong><strong>開源,</strong><strong>跨平臺,</strong><strong>組件化; AngularJS, JQuery, BootStrap</strong><strong>已經成爲標配, Grunt and Gulp</strong><strong>登堂入室,</strong><strong>甚至能夠直接進行Node.Js</strong><strong>開發.</strong></p> <p><strong>另外若是你還想跟着MS</strong><strong>幹, ASP.NET 5 </strong><strong>決對是值得考慮的升級.</strong></p> <p>&nbsp;</p> <p><span style="font-size: 18px;"><strong>關於ASP.NET 5 的後續介紹文章,第一篇已經完成,請有興趣的同窗移步:</strong></span></p> <p><a href="http://www.cnblogs.com/zergcom/p/4493358.html">創建和開發ASP.NET 5 項目</a></p> <p><a href="http://www.cnblogs.com/zergcom/p/4506662.html">使用自定義配置文件</a></p> <h1>參考資料</h1> <p><a href="http://docs.asp.net/en/latest/conceptual-overview/aspnet.html#web-root">Introduction to ASP.NET 5</a></p> <p><a href="http://docs.asp.net/en/latest/dnx/overview.html">DNX Overview</a></p> <p><a href="http://docs.asp.net/en/latest/client-side/index.html">Client-Side Development</a></p></div>java

相關文章
相關標籤/搜索