ASP.NET 5 (vNext)
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 (vNext)的更多相关文章
- Linux部署ASP.NET 5 (vNext)
原文:Linux部署ASP.NET 5 (vNext) ASP.NET 5 (vNext) Linux部署 引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubun ...
- ASP.NET 5 (vNext) Linux部署
引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubuntu Ubuntu是基于linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86.64位和p ...
- ASP.NET 5 (vNext) 理解和概述
概述 ASP.NET 5 (又称为vNext) 是自ASP.NET产生15年以来一次革命性的更新, 我们可以从以下几点来理解其概貌和意义: ASP.NET 5是开源的 ASP.NET 5开发的WebA ...
- ASP.NET 5 (vNext) 牛刀小試:自帶 DI 容器
小引 在 ASP.NET 5(vNext)之前,亦即 MVC 4/5.Web API 2 的时代,MVC 与 Web API 框架彼此有非常相似的设计,却是以不同的代码来实现.现在,ASP.NET 5 ...
- ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus
ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus 本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主要是针对最新的ASP. ...
- ASP.NET 5 使用 TestServer 进行单元测试
之前如果对 ASP.NET WebAPI 进行单元测试(HttpClient 发起请求,并且可调试 WebAPI),一般采用 Owin 的方式,具体参考:<开发笔记:用 Owin Host 实现 ...
- 【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题
dudu 的一篇博文:在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题 针对 IIS 部署 ASP.NET 5 应用程序的问题,在上面博文中主要采用两种方式尝试: VS2015 的 Publ ...
- [Asp.net 5] Configuration-新一代的配置文件
微软新一代asp.net(vnext),也叫asp.net 5,开源代码都放在网址https://github.com/aspnet下. 本文介绍的是Configuration工程,下载路径为http ...
- ASP.NET 5 入门 (2) – 自定义配置
ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext ...
随机推荐
- 双链表---LinkedList的重写
重写Linkedlist类,改写为MyLinkedList,未继承Iterable类. public class MyLinkedList<AnyType> { private int t ...
- 谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較
谈谈CListCtrl 扩展风格设置方法 --------------------------------------SetExtendedStyle和ModifyStyleEx 比較 对于刚開始学习 ...
- ruby简单的基本 3
类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类cl ...
- 在最完整的搜索提示降史上的用户交互的研究——阅读《An Eye-tracking Study of User Interactions with Query Auto Completion》
搜索下拉提示(Query Auto Completion,简称QAC)如今差点儿是每一个搜索引擎必备的基本功能,作用是在用户在搜索框输入查询词的过程中,给用户展示一系列搜索查询quer ...
- 马云收购UC你,至于到底是谁宣战
近日,阿里巴巴官方正式宣布,UC优视全资融入阿里巴巴集团,并组建阿里UC移动事业群. 据阿里方面表示,整个交易对UC的估值远超百度对91无线的估值,外界推測估值近50美元.是中国互联网最大一笔交易.业 ...
- 如何设置ubuntu自己主动的睡眠时间
我相信很多在学习linux的过程中.总会遇到,不时系统会冬眠自己主动,因此,即使再次输入password.么重要的内容怕别人看 另外假设你常常使用像Putty这样子的远程登录软件的话,假设你的linu ...
- 《Lua游戏开发实践指南》读后感
书籍地址:http://book.douban.com/subject/20392269/ 一句话点评该书:想用Lua作游戏脚本开发的同学值得一读! (一)本书特点 市面专门讲Lua的中文书籍非常少, ...
- 它们的定义PropertyPlaceHolder无法完成更换任务
Spring默认PropertyPlaceholderConfigurer只能加载properties格风格简介,现在,我们需要能够从类的完整支持允许似hadoop格风格xml配置文件读取配置信息,并 ...
- SQL开发中容易忽视的一些小地方( 三)
原文:SQL开发中容易忽视的一些小地方( 三) 目的:这篇文章我想说说我在工作中关于in和union all 的用法. 索引定义 : 微软的SQL SERVER提供了两种索引:聚集索引(cluster ...
- Gradle 2.0用户手册——总览(译)(转)
2.1 特性 本章将介绍一系列Gradle的特性. 申明式构建和基于约定的构建 Gradle的核心是基于Groovy呈现了一种丰富的针对特定领域的语言,称之为Domain Specific Langu ...