我很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2的一部分提供!
如何获取?
您可以从.NET Core 2.2下载页面下载适用于您的开发机器和构建服务器的新.NET Core SDK(2.2.100)。此页面还提供了新的Windows Server托管,运行时安装程序和二进制存档,用于更新服务器。
此版本将.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的帖子)
- 用于应用程序运行状况监视的New Health Checks API
- 由于进程内托管支持,IIS上的吞吐量提高了400%
- 高达15%的MVC模型验证性能得到改善
- 问题详细信息(RFC 7807)支持MVC以获取详细的API错误结果
- 在ASP.NET Core中预览HTTP / 2服务器支持
- Bootstrap 4和Angular 6的模板更新
- ASP.NET Core SignalR的Java客户端
- Linux上的HTTP客户端性能提高了60%,Windows上提高了20%
Health Checks集成到BeatPulse项目
我们很高兴地宣布,BeatPulse项目现在支持新的Health Checks API,这意味着您可以使用他们,轻松添加对数十种流行系统和依赖项的检查。以下是BeatPulse团队关于他们对新的Health Checks API的支持的消息:
BeatPulse是一个社区驱动的项目,旨在为系统,网络和企业中常见的各种服务提供健康检查机制,例如SqlServer,MySql,Postgress,Redis,Kafka等等。当微软宣布推出针对2.2路线图的ASP.NET核心健康检查时,BeatPulse团队移植了所有现有的活动包和功能,以便在存储库AspNetCore.Diagnostics.HealthChecks中使用新的Microsoft Health Checks抽象。除了所有健康检查包之外,BeatPulse团队还结合了其他功能,如脉冲跟踪(Application Insights和Prometheus),我们可以为故障通知和UI界面配置不同的监控系统,并具有一个可以查看健康状态的全局概览图表。目前此UI的Docker镜像已经发布到Docker Hub。
即将推出
当我们宣布规划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自动管理。这样做现在将导致构建警告。
有关升级到ASP.NET Core 2.2的更多信息,请参阅此处。
生命周期
ASP.NET Core 2.2是目前.NET Core系列中的最新版本。这是自2.1 LTS宣布重新建立单独的LTS以来的首次发布,也是2.x生命周期中的最后一次非服务版本,包括一些新功能、增强功能和常规的错误修复,推荐大家使用。
请注意,LTS和当前版本都会收到安全性和关键稳定性修复的服务更新。
在此处阅读有关.NET Core支持策略的更多信息。
Azure App Service中的可用性
.NET Core 2.2 SDK,运行时和更新的ASP.NET核心IIS模块正在部署到全球的Azure App Service区域。我们预计这将在2018年12月底之前完成。
某些区域可能会在更新的ASP.NET核心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 记录问题向我们提供反馈 。我们期待您的回音!