ASP.NET 5 简介
来源https://docs.asp.net/en/latest/conceptual-overview/aspnet.html
ASP.NET 5 是ASP.NET的重新设计。
什么是ASP.NET 5##
ASP.NET 5 是开源、跨平台用来构建现代基于云平台的web应用的.NET框架。是模块化的、低overhead、灵活的框架。
为什么构建ASP.NET 5
首先从ASP.NET 1.0到现在已经15年了,虽然一直在演变,增加新功能,也有很多开发者使用,但是无法跨平台、不开源,所以你懂得,跟不上时代了。
所以ASP.NET 5 做出了一些架构上的改变,使得核心的web框架更加精简和模块化。他不再依赖于System.Web.dll,而是依赖于一系列颗粒度更小的dll,而且这些dll都是可以通过NuGet来进行安装管理的,所有可以减少应用的surface area来提高安全性,同时也减少了服务负担,提高了性能,实行pay for play.
ASP.NET 5是为了满足现代化的web开发,统一了Web UI 和Web api以及开发工作流。通过引进基于环境的配置,是的ASP.NET 5支持cloud-ready,同时也提供了内建的DI(依赖注入)支持。
为了吸引开发者,所以要开源,要跨平台,鼓励社区contributions。在支持Visual Studio快速开发,同时也提供了一个完整的命令行接口。
总之,ASP.NET 5为了吸引开发者、跟上时代,做出了开源、跨平台的改变,基础改进如下
1. 轻量级、模块化的http请求pipeline
2. 可以使用IIS作为host,也可以self-host in your own process
3. Built on .NET Core, which supports true side-by-side app versioning
4. 完全通过NuGet来发布
5. 对创建和使用NuGet包提供完整的支持
6. 对Web UI 和 Web APIs提供了一致的web开发栈
7. Cloud-ready environment-based configuration
8. 内建支持依赖注入
9. 新的工具简化现代web开发
10. 跨平台
11. 开源、专注社区
应用解剖##
ASP.NET 5是通过新的.NET Execution Environment(DNX)来构建和运行的。每一个ASP.NET 5都是一个DNX项目,通过Microsoft.AspNet.Hosting包,ASP.NET 5和DNX集成在一起的。
ASP.NET 5应用是由一个Startup类来定义的:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
}
public void Configure(IApplicationBuilder app)
{
}
}
ConfigureServices方法定义了应用所使用的服务,Configure方法定义了构成请求管道的中间件。
服务##
服务是在ASP.NET 5应用中公共使用的组件,通过依赖注入来获取。ASP.NET 5 包含了内建的IOC容器,默认支持构造器注入,当然也可以用自己的IOC容器替换。See Dependency Injection for more details.
在ASP.NET 5 中服务有三种生命周期,singleton,scoped和transient. Transient是每次请求都会创建一次服务,Scoped是是在当前Scoped中如果不存在服务,就会创建,Singleton仅仅创建一次。对于Web应用,容器的scope对每个请求都是会创建一次,so you can think of scoped services as per request.
中间件##
在ASP.NET 5中,可以通过中间件来组成你自己的请求管道。ASP.NET 5中间件在HttpContext上执行异步逻辑操作,可选地调用管道中的下一个中间件或者直接终止请求。一般情况下,你可以通过调用在Configure方法中的IApplicationBuilder的对应的扩展方法来“使用”中间件。
ASP.NET 5附带一些预编译的中间件
1. Working with Static Files
2. Routing
3. Diagnostics
4. Authentication
当然你也可以写自己的中间件
服务器##
ASP.NET应用hosting model并不是直接监听请求,而是but instead relies on an HTTP server implementation to surface the request to the application as a set of feature interfaces that can be composed into an HttpContext.
Web Root
Web Root是ASP.NET 应用的根位置,在这里http请求的到处理(如处理静态文件)。在ASP.NET 5中Web Root 是通过project.json的webroot属性来配置的。
配置##
ASP.NET 5使用了新的配置模型来处理简单的name-value对,而不是基于System.Configuration或者web.config。This new configuration model pulls from an ordered set of configuration providers.内建的配置provider支持各种文件格式,如xml,json,ini,同时支持环境变量,实现基于环境的配置。你也可以写自己的配置provider。在ASP.NET5中,环境,如开发和生产,都是first-class概念,也是可以通过环境变量来设置的。(Environments, like Development and Production, are a first-class notion in ASP.NET 5 and can also be set up using environment variables):
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
参见Configuration来了解更多关于新的配置系统, Working with Multiple Environments for details on how to work with environments in ASP.NET 5
客户端开发(Client-side development)##
ASP.NET 5 无缝集成了各种各样的客户端框架,如angularJS,KnockoutJs和BootStrap,详情见
Client-Side Development for more details.
ASP.NET 5 简介的更多相关文章
- 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
ASP.NET 5简介 ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一 ...
- 第一章ASP.NET SignalR简介
第一章ASP.NET SignalR简介 1.1概述: ASP.NET SignalR是微软新开发的类库,为的是帮助ASP.NET开发人员很方便地开发实时网络功能. SignalR允许服务器端和客户端 ...
- ASP.NET 5简介
ASP.NET 5简介 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介 2015-05-13 09:14 by 汤姆大叔, 3379 阅读, 39 评论, 收藏, 编辑 ...
- 酷学习笔记——ASP.NET Core 简介
ASP.NET Core 简介 其实就是说酷好,不好好学,不学好,没饭吃. 新词汇:IoT,Internet of Things,网联网,微软物联网英文网站.微软物联网中文网站
- ASP.NET Razor 简介
ylbtech-.NET: ASP.NET Razor 简介 Razor 不是一种编程语言.它是服务器端的标记语言. 1. 什么是 Razor?返回顶部 Razor 是一种标记语法,可以让您将基于服务 ...
- [翻译] ASP.NET Core 简介
ASP.NET Core 简介 原文地址:Introduction to ASP.NET Core 译文地址:asp.net core 简介 翻译:ganqiyin ...
- [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
本文出处 [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23) 这是我的文章备份 http://www.dotblogs.co ...
- ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程 ← ASP.NET Core 基础教程 ASP.NET Core Windows 环境配置 → A ...
- [转帖]2016年的文章: 解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介
解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介 更新时间:2016年06月23日 11:38:00 作者:汤姆大叔 我要评论 https://www.jb ...
- ASP.NET MVC教程一:ASP.NET MVC简介
一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller).在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式, ...
随机推荐
- android 拓展ImageView播放GIF动画
原生Android控件ImageView并不能支持播放GiF格式的图片.如果将一张GIF的图片放入ImageView中,它只会显示图片的第一帧,不会产生任何动画效果. Android中播放GIF动画实 ...
- select chosen 禁用下拉框某一个option
$("#tbParBudCode option[value='" + budCodeId + "']").attr("disabled", ...
- KVC 开发详情
目录 概述 KVC基本技术 KVC访问函数 KVC搜索顺序 KVC集合操作 一.概述 kvc全名是Key-value coding,kvc是一种通过字符串间接的访问oc对象的属性的一种技术. 一个oc ...
- Python函数参数中的冒号与箭头
在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西? 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型.函数 ...
- Android 热更新是如何实现的?
Android开发中,我们常常遇到热更新这个概念,而这个热更新具体是怎么实现的呢?今天在网上看到一个大神分享的热更新相关实现原理和实现代码,感觉灰常不错,分享给广大码农盆友look look . Cl ...
- BZOJ2594 [Wc2006]水管局长数据加强版 【LCT维护最小生成树】
题目 SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的 ...
- 【马克-to-win】学习笔记—— 第五章 异常Exception
第五章 异常Exception [学习笔记] [参考:JDK中文(类 Exception)] java.lang.Object java.lang.Throwable java.lang.Except ...
- 【Error】Python:UnicodeDecodeError: ‘XXX' codec can't decode bytes in position... 解决方法
错误信息: UnicodeDecodeError: ‘XXX' codec can't decode bytes in position 2-5: illegal multibyte sequence ...
- 基于Windows Server 2008 R2的Failover Cluster
转载一下别人的文章吧,写的不错 基于Windows Server 2008 R2的Failover Cluster(故障转移群集)部署Sql Server 2008 AA(主主) 模式群集(第一部分) ...
- tips 前端 移动端 web iscroll 5 自译文档 api速查
iscroll 可以做的 1,模拟原生的ios 或者android等设备的元素滚动,app里的那种顺滑的滚动,仅仅使用一个轻量的js库实现(甚至更酷炫的视觉感受) 2,手机端流行的下拉刷新,ajax异 ...