即将发布的 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 进行部署, ...
随机推荐
- Jenkins结合.net平台之Web项目编译
前面我们讲解了如何使用msbuild.exe编译一个.net程序.示例中我们讲解的是编译控制台项目,但是我们知道web项目不仅需要编译类的嵌入的资源文件,还要拷贝诸如css,html,js,图片等资源 ...
- Spring中使用的设计模式
目录 Spring使用的设计模式 1.单例模式 2.原型模式 3.模板模式 4.观察者模式 5.工厂模式 简单工厂模式 工厂方法模式 6.适配器模式 7.装饰者模式 8.代理模式 9.策略模式 S ...
- Perl一行式:文本编解码、替换
perl一行式程序系列文章:Perl一行式 文本大小写转换 全部字符转换成大写或小写,有几种方式: # 转大写 $ perl -nle 'print uc' file.log $ perl -ple ...
- .NET LINQ 实现跨数据库数据的整合
如果要在不同的数据库之间,要把数据整合到一起,或者对数据进行统计分析的话,实现起来比较麻烦. 一般情况下我们第一时间想到的方法是通过前置机实现,在前置机上安装一个数据库和同步数据程序,定时的把数据同步 ...
- 【转】Android播放音频MediaPlayer的几种方式介绍
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
- ceph集群搭建
CEPH 1.组成部分 1.1 monitor admin节点安装ceph-deploy工具 admin节点安装ceph-deploy 添加源信息 rm -f /etc/yum.repos.d/* w ...
- #WEB安全基础 : HTML/CSS | 0x8CSS进阶
你以为自己学这么点CSS就厉害了? 学点新东西吧,让你的网页更漂亮 我们只需要用到图片和网页 这是index.html的代码 <html> <head> <title ...
- 广州.NET微软技术俱乐部 - 动手实验室
本文正在写草稿中, 发布时会在群里单独通知
- 开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法
开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法: 创建存储过程时 出错信息: ERROR 1418 (HY ...
- uiautomatorviewer 查看元素报错: Error taking device screenshot: null 原因
使用uiautomatorviewer 查看android某些页面元素,出现错误Error obtaining UI hierarchy Reason: Error taking device sc ...