即将发布的 ASP.NET Core 2.2 会有哪些新玩意儿?

今年 6 月份的时候时候 .NET 团队就在 GitHub 公布了 ASP.NET Core 2.2 版本的 Roadmap(文末有链接),而前两天 ASP.NET Core 2.2 预览版 2 已经可以下载使用了,正式版大约会在今年年底的时候发布。
相对于 2.0 and 2.1 来说,这次更新算是一次小更新了,主要包含 Bug 修复、性能优化、增加一些小的特性、和 Merge 社区的 PR。
下面来总结一下 ASP.NET Core 2.2 有哪些新的东西。
ApiController 特性增强
ApiController 特性是 ASP.NET Core 2.1 引入的,应用在 Controller 类上,主要用来自动对 Model 进行验证并自动响应 400 错误。引入 ApiController 特性后比如下面的代码是多余的:
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
在版本 2.2,ApiController 特性提供了 API Explorer 元数据,可以更友好地生成 Swagger/OpenAPI 文档。然后还增加了一些默认约定,如果代码不符合约定,是会有建议的。比如下面的代码:
[HttpPost("/orders")]
public ActionResult<Order> CreateOrder(OrderData orderData)
{
....
return Ok(new Order() {...});
}
会出现建议提示,通过快捷键 Ctrl+.,编辑器会建议你这么写:
[HttpPost("/orders")]
[ProducesResponseType(typeof(CatalogItem),(int)HttpStatusCode.OK)]
public ActionResult<Order> CreateOrder(OrderData orderData)
{
....
return Ok(new Order() {...});
}
引入新的路由系统
会有一个叫 Dispatcher 的东西,它的设计是为了让路由匹配更早地出现在管道中,这样可对中间件可见,中间件通过它可以知道下一个路径的信息。
提供调用 API 的 REPL 工具
在 dotnet CLI 中集成可以调用 API 的 REPL 工具。这个主要是方便快速调试 API 的,类似命令行的 curl 命令,但应该更强大。
生成调用 API 客户端代码 (C# 和 TypeScript)
可以根据写好的 API 元数据,生成调用 API 的客户端代码(C# 和 TypeScript)。
授权服务
提供基于 OpenID 的授权服务,这个服务相当于项目的统一授权点,可用于 SPA、Native App 等。
其它
Kestrel 和 HttpClient 的 HTTP/2 支持。
应用的健康检查,比如内存消耗。
SignalR 支持使用 Java 和 C++ 链接。
详情请查看官方 ASP.NET Core 2.2 Roadmap:
https://github.com/aspnet/Announcements/issues/307
即将发布的 ASP.NET Core 2.2 会有哪些新玩意儿?的更多相关文章
- 发布到ASP.NET CORE项目到 Windows server 2012
原文: https://github.com/zeusro/MarkdownBlog/blob/master/2018/2018-01-17-01.md 发布到ASP.NET CORE项目到 Wind ...
- 学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- Ubuntu-Docker[1]安装Docker,通过Docker部署net core代码,需要结合[.NET Core 18]发布、ASP.NET Core Docker部署
1)通过系统自带包安装 通过自带包安装,可能Docker版本较旧 $ sudo apt-get update Reading package lists... Done $ sudo apt-get ...
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web ...
- 探索ASP.NET Core 3.0系列一:新的项目文件、Program.cs和generic host
前言:在这篇文章中我们来看看ASP.Net Core 3.0应用程序中一些基本的部分—— .csproj项目文件和Program.cs文件.我将会介绍它们从 ASP.NET Core 2.x 中的默认 ...
- 学习ASP.NET Core Razor 编程系列十——添加新字段
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
- [翻译] 初看 ASP.NET Core 3.0 即将到来的变化
[翻译] 初看 ASP.NET Core 3.0 即将到来的变化 原文: A first look at changes coming in ASP.NET Core 3.0 在我们努力完成下一个 m ...
- Asp.Net Core 发布和部署(Linux + Jexus )
前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 asp.net core 中对我们的已经完成的程序进行发布和部署. 有关如何使用 Nginx 进行部署, ...
随机推荐
- mac终端代理
终端代理,需要首先有自己的梯子,以下方式需要配合shadowsocks 终端FQ有很多好处,对于一个程序员来说,墙外有很多优秀的代码,走终端可以方便下载和使用- (编程思想强调复用,软件开发避免重复造 ...
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——VoiceRecorder控件的使用方式.Net移动开发
一. 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个VoiceRecorder控件和一个ImageButton控件到 ...
- Node.js 应用:Koa2 使用 JWT 进行鉴权
前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行保护,那么别人就可以很容易地获取并调用这些 API 进行操作.那么服务器端要如何进行鉴权呢? Json ...
- C# 提取PPT文本和图片的实现方案
在图文混排的文档中,我们可以根据需要将文档中的文字信息或者图片提取出来,通过C#代码可以提取Word和PDF文件中的文本和图片,那么同样的,我们也可以提取PPT幻灯片当中的文本和图片.本篇文档将讲述如 ...
- 【Spring】Autowired原理及与Resource注解区别
Autowired注解 Autowired顾名思义,表示自动注入,如下是Autowired注解的源代码: @Target({ElementType.CONSTRUCTOR, ElementType.M ...
- 网络最大流算法—EK算法
前言 EK算法是求网络最大流的最基础的算法,也是比较好理解的一种算法,利用它可以解决绝大多数最大流问题. 但是受到时间复杂度的限制,这种算法常常有TLE的风险 思想 还记得我们在介绍最大流的时候提到的 ...
- 2018年终总结之AI领域开源框架汇总
2018年终总结之AI领域开源框架汇总 [稍显活跃的第一季度] 2018.3.04——OpenAI公布 “后见之明经验复现(Hindsight Experience Reply, HER)”的开源算法 ...
- SSM登陆拦截器实现
首先在springmvc中配置拦截器 <!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截所 ...
- ListView刷新某一项Item
ListView现在已经很少被使用,但还是在这里列出来说一下,有时候我们仅仅需要改变listView的某个Item,如果调用adapter的notifyDataSetChanged()方法效率不高,并 ...
- PHP实现开心消消乐的算法示例
本文主要介绍了关于PHP如何实现我们大家都知道的开心消消乐的算法,分享PHP教程出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.需求描述: 1.在一个8*8的矩阵方格中随机 ...