<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> 概述</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> </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