本文为翻译,原文地址:https://blogs.msdn.microsoft.com/webdev/2018/12/04/asp-net-core-2-2-available-today/
我(文章作者)很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2的一部分提供!
怎么获取它
您可以从 .NET Core 2.2 下载页面下载适用于您的开发机器和构建服务器的新 .NET Core SDK(2.2.100)。 此页面还提供了新的 Windows Server hosting,运行时安装程序和二进制存档,用于更新服务器。
此版本将 .NET Core,ASP.NET Core 和 Entity Framework Core 更新为2.2.0版。 新的SDK版本是2.2.100。 Visual Studio要求如下:
- Visual Studio 2017 15.9 或者更高版本
- Visual Studio for Mac 7.7 或者更高版本
- Visual Studio Code C# 扩展 1.17.1或者更高版本
Visual Studio 2019 16.0 Preview 1,今天也可以使用,包含了 .NET Core SDK 2.2.100 作为可选组件。
更新了什么?
此 ASP.NET Core 版本的主题是在构建 Web / HTTP API 方面提高开发人员的工作效率和平台功能。 像往常一样,我们也做了一些性能改进。 我们已将这些功能作为预览版本的一部分发布,您可以通过以下链接阅读这些功能:
- 与流行的Open API(Swagger)库更好地集成,包括使用代码分析器进行设计时检查
- 引入端点路由,在MVC中提高了20%的路由性能
- 使用LinkGenerator类改进URL生成并支持路由参数变换器(以及来自Scott Hanselman的文章)
- 用于应用程序运行状况监视的新的健康检查API
- IIS进程内托管支持,吞吐量提高了400%
- 提高15%MVC模型验证性能
- 问题详细信息(RFC 7807)支持MVC以获取详细的API错误结果
- 在ASP.NET Core中预览HTTP / 2服务器支持
- Bootstrap 4和Angular 6的模板更新
- ASP.NET Core SignalR Java 客户端
- Linux上的HTTPClient性能提高了60%,Windows上提高了20%
Health Checks与BeatPulse集成
我们很高兴地宣布,BeatPulse项目现在支持新的Health Checks API,这意味着您可以使用他们的强大支持轻松添加对数十种流行系统和依赖项的检查。 以下是BeatPulse团队关于他们对我们新的Health Checks API的支持的消息:
BeatPulse是一个社区驱动的项目,旨在为系统,网络和企业内部常见的各种服务提供健康检查机制,例如: SqlServer,MySql,Postgress,Redis,Kafka等等。 当微软宣布针对2.2路线图的ASP.NET Core健康检查时,BeatPulse团队移植了所有现有的活动包和功能,以便在存储库AspNetCore.Diagnostics.HealthChecks中使用新的Microsoft Health Checks抽象。 除了所有健康检查包之外,BeatPulse团队还结合了其他功能,如Application Insights和Prometheus,故障通知和UI界面,我们可以配置不同的受监控系统,并具有健康状态的全局视图。 此UI可用作Docker Hub中发布的Docker镜像。
即将推出
当我们宣布规划ASP.NET Core 2.2时,我们提到了许多上面没有详述的功能,包括使用IdentityServer4的API授权,Open API(Swagger)驱动的客户端代码生成以及HTTP REPL命令行工具。 这些功能仍在进行中,尚未准备好发布,但我们希望在未来几个月内将它们作为附加组件提供。 感谢您的耐心,同时我们完成了这些体验,让他们为您所有人做好准备。
将项目迁移到ASP.NET Core 2.2
要将ASP.NET Core项目从2.1迁移到2.2,请打开项目的.csproj文件,并将TargetFramework结点的值更改为netcoreapp2.2。 如果您的目标是.NET Framework 4.x,则无需执行此操作。
通过更新NuGet包引用到最新的稳定版本来完成。 请注意,针对.NET Core(而不是.NET Framework)的项目不应为Microsoft.AspNetCore.App程序包指定程序包版本(译者注:这个程序包不指定具体版本号,由SDK管理),因为这将由SDK自动管理。 如果这样做,现在将导致构建警告。
有关升级到ASP.NET Core 2.2的更多信息,请参阅此处。
支持生命周期
ASP.NET Core 2.2是当前.NET Core系列中的最新版本。 这是自2.1 LTS宣布重新建立单独的LTS和Current train以来的首次发布。 Current train是应用新功能,增强功能和常规错误修复的地方,建议大多数客户使用。 请注意,LTS和当前版本都会收到安全性和关键稳定性修复的服务更新。 目前预计2.2将是2.x生命周期中的最后一次non-servicing版本,因此不使用LTS版本的客户将需要在2019年下半年发布后的3个月内迁移到3.0 GA 为了保持支持。
Azure App Service中的可用性
.NET Core 2.2 SDK,运行时和更新的ASP.NET Core IIS模块正在部署到全球的Azure App Service区域。 我们预计这将在2018年12月底之前完成。
某些区域可能会在更新的ASP.NET Core IIS模块(ANCM)之前收到更新的运行时,对于面向ASP.NET Core 2.2的项目,默认情况下这是必需的。 这也是新的进程内托管功能的要求。 如果在部署到Azure App Service后收到启动错误,请尝试通过将AspNetCoreModule属性设置为值“AspNetCoreModule”来配置项目以使用现有版本的ANCM,例如:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
使用最新的ANCM版本更新目标区域后,您可以完全删除该属性并重新部署应用程序以使其切换到使用新的ANCM。
此版本还为Azure App Service中的.NET Core添加了更好的64位支持。 如果您使用进程内托管在.NET Core 2.2上运行ASP.NET Core应用程序,则只需在Azure门户中启用64位选项,该站点现在将以64位进程运行。 有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序的其他信息,请参阅此文章。
给予反馈
与往常一样,请通过https://github.com/aspnet/AspNetCore issues向我们提供反馈。 我们期待您的回音!
其他相关
EntityFramework Core 2.2 发布
.NET Core 3 Preview1和Windows桌面框架开源
.NET Core 2.2