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 决对是值得考虑的升级.

参考资料

Introduction to ASP.NET 5

DNX Overview

Client-Side Development

时间: 2024-10-12 19:39:26

ASP.NET 5 (vNext)的相关文章

Linux部署ASP.NET 5 (vNext)

ASP.NET 5 (vNext) Linux部署 引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubuntu Ubuntu是基于linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86.64位和ppc架构 全面支持网页浏览器   WPS.Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本.Ubuntu的目标

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 (vNext) Linux部署

引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubuntu Ubuntu是基于linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86.64位和ppc架构 全面支持网页浏览器   WPS.Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本.Ubuntu的目标在于为一般用户提供一个最新的.同时又相当稳定的主要由

ASP.NET 5 (vNext) 牛刀小試:自帶 DI 容器

小引 在 ASP.NET 5(vNext)之前,亦即 MVC 4/5.Web API 2 的时代,MVC 与 Web API 框架彼此有非常相似的设计,却是以不同的代码来实现.现在,ASP.NET 5 集成了 MVC.Web API.与 Web Pages 程序模型于单一框架,统称为 MVC 6. ASP.NET 5 的另一个亮点是自帶 Dependency Injection 容器.在此之前的 MVC 与 Web API 框架对于 DI 的支持则相对薄弱,主角是 IDependencyReso

ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以我们首先需要下载安装其最新的RC版本. https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx 安装完毕以后,打开并建立新的Web Application项目: 然后在后一个界面中选择ASP.NET 5 Empty模板: 这里提2个注意点: 要

ASP.NET-入门

MVC5特点 1.One ASP.NET统一平台 2.Bootstrap 免费CSS,响应式页面 3.路由标记属性:简单.控制器.操作.前缀.参数.URL 4.ASP.NET web API 2 :路由标记属性.OAuth2.0.Odata.Web API Client.CORS.OWIN集成 5.ASP.NET SignalR 2:基于OWIN.跨域支持.IOS and Android.NET Client.新的Self-Host包.群发消息 6.ASP.NET Identity:身份验证过滤

使用Jil序列化JSON提升Asp.net web api 性能

JSON序列化无疑是Asp.net web api 里面性能提升最重要的一环. 在Asp.net web api 里面我们可以插入自定义的MediaTypeFormatter(媒体格式化器), 说白了就是根据HTTP content-type application/json 来判断采用哪种媒体格式化器 具体实现,记得要引入Jil包 public class JilFormatter : MediaTypeFormatter { private readonly Options _jilOpti

ASP.NET 5 入门 (2) – 自定义配置

ASP.NET 5 入门 (2) – 自定义配置 ASP.NET 5 理解和入门 建立和开发ASP.NET 5 项目 初步理解ASP.NET5的配置 正如我的第一篇文章ASP.NET 5 (vNext) 理解和概述 所说,ASP.NET 5的具有全新的配置机制,我们可以通过以下几点来进行理解: 支持多种跨平台的配置文件格式(如XML, Json, Ini和环境变量) 标准的配置文件如project.json不再包括任何自定义的配置信息. 自定义的配置完全由开发者另行建立和加载 自定义的配置信息可

在Azure中运行Linux容器ASP.NET 5 跨平台应用程序

在之前一篇的博客中,介绍了如何通过Virtual Studio 2015的Docker扩展工具直接发布ASP.NET应用程序到Azure公有云中的Windows Server 2016 TP3的Windows容器中,这个并不难理解,毕竟Windows 服务器内核就是Windows运行.NET应用程序是必须的:不过这里的伏笔是ASP.NET 5(vNEXT)的开源项目中具备通过DNX(.NET Execution Environment运行环境)将Bootstrap .NET应用程序的编译系统,S