前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ASP.NET Core 各版本特性简单整理

ASP.NET Core 各版本特性简单整理

作者头像
晓晨
发布于 2021-01-20 22:03:38
发布于 2021-01-20 22:03:38
3.5K0
举报
文章被收录于专栏:晓晨的专栏晓晨的专栏

前言

简单整理了 ASP.NET Core 从1.0到5.0的变迁,不包括小版本, 内容主要来自 MS Docs。

介绍

ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。 使用 ASP.NET Core,您可以:

  • 生成 Web 应用和服务、物联网 (IoT)应用和移动后端。
  • Windows、macOS 和 Linux 上使用喜爱的开发工具。
  • 部署到云或本地。
  • 在.NET Core上运行。

相关:在 ASP.NET 4.x 和 ASP.NET Core 之间进行选择

v1.0

Release Time:2016.6.27

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/1.0.0

Announcing: https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-1-0/

v1.1

Release Time:2016.11.17

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/1.1.0

Announcing: https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-1-1/

Docs: ASP.NET Core 1.1 的新增功能

新增功能:

v2.0

Release Time:2017.8.14

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/2.0.0

Announcing: https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-2-0/

Docs: ASP.NET Core 2.0 中的新增功能

新增功能:

  • Razor Pages
  • ASP.NET Core 元包(注:即Microsoft.AspNetCore.All ,我喜欢称作全家桶,作用就是一把梭给你全部引用了相关的包,不用你发现没有的时候自己去找,方便是方便,就是把一堆没用到的也给引用了,项目加载速度也会受到影响)
  • .NET Standard 2.0
  • SPA 模板
  • Kestrel 改进(添加大量服务器约束配置选项)
  • WebListener 重命名为 HTTP.sys
  • 默认启用防跨站请求攻击(CSRF)
  • Razor 视图预编译
  • Razor 支持 C# 7.1

v2.1

Release Time:2018.5.31

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/2.1.0

Announcing: https://devblogs.microsoft.com/aspnet/asp-net-core-2-1-0-now-available/

Docs: ASP.NET Core 2.1 的新增功能

新增功能

  • SignalR(已针对 ASP.NET Core 2.1 重新编写 SignalR:新 JavaScript 客户端不具有 jQuery 依赖项,新紧凑型二进制协议基于 MessagePack等)
  • Razor 类库(Razor Class Library)
  • Identity UI
  • HTTPS
  • GDPR(注:刚出来时,很多人发现Cookie写入不了就是因为开启了它)
  • 集成测试
  • [ApiController], ActionResult(注:ApiController 特性自带了请求内容验证拦截,这个当初也是坑了不少人,就我自己而言在实际使用中是将它关闭的,对于参数验证处理逻辑自己有一套逻辑)
  • IHttpClientFactory(注:官方出品,解决 HttpClient new多了,TIME_AWAIT 问题)
  • Kestrel 默认传输不再基于 Libuv,而是基于托管的套接字
  • 通用主机(注:即 HostBuilder ,在此时 ASP.NET Core 默认还是用的 WebHostBuilder,HostBuilder 可以用在不需要 ASP.NET Core ,但是又想使用 ASP.NET Core 的依赖注入,日志,配置等组件的项目)

v2.2

Release Time:2018.12.5

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/2.2.0

Announcing: https://devblogs.microsoft.com/aspnet/asp-net-core-2-2-available-today/

Docs: ASP.NET Core 2.2 的新增功能

新增功能:

  • 端点路由(Endpoint Routing)
  • 健康检查(HealthCheck)
  • HTTP/2
  • IIS 进程内承载
  • SignalR Java 客户端
  • CORS 改进
  • 响应压缩(ASP.NET Core 2.2 可以使用 Brotli 压缩格式来压缩响应。)
  • 提升 HttpClient 性能(通过改善连接池锁的争用)

注:.NET Core 2.2 新增了一个 startup hook 功能 https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/host-startup-hook.md

v3.0

Release Time:2019.9.24

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/v3.0.0

Announcing: https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/

Docs: ASP.NET Core 3.0 的新增功能

新增功能:

  • Blazor Server
  • Blazor WebAssembly
  • Razor 组件
  • gRPC
  • ASP.NET Core 和 SignalR 默认使用 System.Text.Json 来进行序列化
  • ASP.NET Core 中默认不再使用 WebHostBuilder ,而是使用 HostBuilder(可以更好地将 ASP.NET Core 应用与非 Web 特定的其他服务器方案集成)
  • Startup 类构造方法注入类型更改,只支持:IHostEnvironment,IWebHostEnvironment,IConfiguration
  • 默认情况下启用 HTTP/2
  • Kestrel:默认情况下禁用 AllowSynchronousIO(同步IO),线程不足会导致应用崩溃,而同步 I/O API(例如 HttpRequest.Body.Read)是导致线程不足的常见原因
  • 根据请求提供事件计数器
  • 增强了端点路由,可以让框架(例如 MVC)与中间件配合使用
  • ASP.NET Core 3.0 仅在 .NET Core 3.0 上运行(不再支持.NET Framework)
  • 切换到 Newtonsoft.Json 需要自行安装依赖

性能改进

ASP.NET Core 3.0 包含了许多改进,可减少内存使用量并提高吞吐量:

  • 降低了使用内置的依赖项注入容器来实现作用域服务时的内存使用量。
  • 减少跨框架的分配,包括中间件方案和路由。
  • 降低了 WebSocket 连接的内存使用量。
  • 减少 HTTPS 连接的内存使用量并提高了其吞吐量。
  • 新的优化和完全异步 JSON 序列化程序。
  • 减少了窗体分析的内存使用量并提高了其吞吐量。

注:.NET Core 3.0 增加了 Winform 和 WPF 但在此时 Winform 的设计器还是预览版

v3.1

Release Time:2019.12.4

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/v3.1.0

Announcing: https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-core-3-1/

Docs: ASP.NET Core 3.1 的新增功能

新增功能:

  • Razor 组件的分部类支持
  • HTTP.sys 中对共享队列的支持
  • SameSite cookie(这可能会影响 AzureAd、OpenIdConnect 或 WsFederation 等身份验证场景)
  • Blazor 各种功能增强

v5.0

Release Time:2020.11.11

Release Note: https://github.com/dotnet/aspnetcore/releases/tag/v5.0.0

Announcing: https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/

Docs: ASP.NET Core 5.0 的新增功能

新增功能:

  • ASP.NET Core MVC 和 Razor 改进
  • OpenAPI 规范默认开启
  • Blazor 性能改进、增加组件
  • gRPC 性能改进
  • SignalR 增加 Hub Filter,类似于 MVC Filter。支持并行调用,允许客户端一次调用多个Hub方法
  • 自定义处理授权失败,使用由授权中间件调用的新 IAuthorizationMiddlewareResultHandler 接口可以更轻松地自定义处理授权失败
  • 使用端点路由时的授权
  • Linux 上的 Kerberos 身份验证和 LDAP 的基于角色的访问控制
  • 对 ASP.NET Core 项目运行 dotnet watch 将启动默认浏览器,并在对代码进行更改时自动刷新浏览器
  • 控制台记录器格式化程序
  • JSON Console Logger

性能改进

  • 显著减少了 HTTP/2 代码路径中的分配。
  • 支持 Kestrel 中的 HTTP/2 响应标头的 HPack 动态压缩。 有关详细信息,请参阅标头表大小HPACK:HTTP/2 的静默杀手锏
  • 发送 HTTP/2 PING 帧:HTTP/2 有一种机制,用于发送 PING 帧以确保空闲连接仍然正常工作。 当使用经常空闲但仅可间歇查看活动的长生存期流(例如,gRPC 流)时,确保可行连接特别有用。

注:关于 .NET 5 命名 https://docs.microsoft.com/zh-cn/dotnet/core/dotnet-five

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ASP.NET Core技术研究-探秘Host主机启动过程
当我们将原有ASP.NET 应用程序升级迁移到ASP.NET Core之后,我们发现代码工程中多了两个类Program类和Startup类。
李明成
2020/04/15
1.5K0
ASP.NET Core技术研究-探秘Host主机启动过程
ASP.NET Core OData 9的发布,放弃 .NET Framework
Microsoft 于 2024 年 8 月 30 日[1]宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData格式中数据编码的内部细节,使其更符合OData 规范[2]。
张善友
2025/02/04
870
ASP.NET Core 6 的性能改进
受到 由Stephen Toub 发布的关于 .NET 性能的博客的启发,我们正在写一篇类似的文章来强调ASP.NET Core 在6.0 中所做的性能改进。
郑子铭
2022/03/22
1.9K0
ASP.NET Core 6 的性能改进
【译】ASP.NET Core 6 中的性能改进
受到 Stephen Toub 关于 .NET 性能的博文的启发,我们正在写一篇类似的文章来强调 6.0 中对 ASP.NET Core 所做的性能改进。
郑子铭
2022/03/10
1.2K0
【译】ASP.NET Core 6 中的性能改进
ASP.NET Core跨平台技术内幕
ASP.NET Core设计初衷是开源跨平台、高性能Web服务器,其中跨平台特性较早期ASP.NET是一个显著的飞跃,.NET现可以理直气壮与JAVA同台竞技,而ASP.NET Core的高性能特性更是成为致胜法宝。
有态度的马甲
2020/04/16
1.2K0
ASP.NET Core跨平台技术内幕
发布 ASP.NET Core 2.x 应用到 Ubuntu
简单绍一下如何将ASP.NET Core 应用发布到Linux (Ubuntu)服务器上,都是文档的东西。
solenovex
2018/09/20
1.3K0
发布 ASP.NET Core 2.x 应用到 Ubuntu
.NET周报【11月第2期 2022-11-15】
https://www.cnblogs.com/shanyou/archive/2022/11/09/16871945.html
InCerry
2023/03/08
3.1K0
.NET周报【11月第2期 2022-11-15】
.NET周刊【11月第3期 2024-11-17】
https://www.cnblogs.com/netry/p/18543378/scalar-an-alternative-to-swagger-in-dotnet-9
InCerry
2024/11/23
3030
.NET周刊【11月第3期 2024-11-17】
.NET周报【1月第4期 2023-01-28】
https://blog.lindexi.com/post/C-%E5%BE%88%E5%B0%91%E4%BA%BA%E7%9F%A5%E9%81%93%E7%9A%84%E7%A7%91%E6%8A%80.html
InCerry
2023/03/08
2.4K0
.NET周报【1月第4期 2023-01-28】
将传统 ASP.NET 应用迁移到 .NET Core
现在越来越多的人在谈论. NET Core。诚然,.NET Core 是未来, 但是.NET Framework 仍在支持, 因为大量的应用程序无法在短时间内迁移。
Edi Wang
2019/07/08
5K1
将传统 ASP.NET 应用迁移到 .NET Core
技术速递|.NET 9简介
今天,我们非常激动地宣布 .NET 9的发布,这是迄今为止最高效、最现代、最安全、最智能、性能最高的 .NET 版本。这是来自世界各地数千名开发人员又一年努力的成果。这个新版本包括数千项性能、安全和功能方面的改进。您会发现在整个 .NET 堆栈(编程语言、开发者工具和工作负载)都有了全面的增强,这使您能够使用统一平台进行构建并轻松地将 AI 融入您的应用程序。
郑子铭
2024/12/06
3240
技术速递|.NET 9简介
.NET周刊【2月第2期 2024-02-11】
https://www.cnblogs.com/Can-daydayup/p/18006914
InCerry
2024/02/26
2690
.NET周刊【2月第2期 2024-02-11】
ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布。这个版本包括许多伟大的新功能以及许多错误修复和一般的增强。这个版本包含了多个新的中间件组件、针对Windows的WebListener服务器、Razor视图编译以及Azure相关的特性。要将现有项目更新到ASP.NET Core 1.1 ,您需要执行以下操作: 1. 下载并安装更新的.NET Core 1.1  SDK 2. 按照.NET Core 1.1 升级公告(下一节介绍)中的说明将项目更新为使用.NET Core 1.1 3. 更新您
张善友
2018/01/19
2.7K0
.NET周报 【5月第1期 2023-05-06】
https://www.cnblogs.com/huangxincheng/p/17374315.html、
InCerry
2023/08/31
3780
.NET周报 【5月第1期 2023-05-06】
.NET周刊【8月第3期 2024-08-18】
https://www.cnblogs.com/lindexi/p/18365261
InCerry
2024/11/23
4600
.NET周刊【8月第3期 2024-08-18】
.NET周刊【5月第3期 2024-05-19】
文章介绍了利用 WPF 的 Shape 和动画功能,模仿 CSS/SVG 实现复杂的线条光效动画效果。首先,通过 Polyline 和 StrokeDashArray 实现了虚线动画,再通过 StrokeDashOffset 添加动画效果。然而,由于 WPF 不支持角向渐变,作者另寻两种方法来实现渐变效果,一种是基于多条线段的动画,最后提到可以使用 Avalonia 的 ConicGradientBrush 实现角向渐变。文章展示了实现代码和效果,但还涉及到多条线段拐角处颜色连贯等细节问题。
InCerry
2024/05/27
4840
.NET周刊【5月第3期 2024-05-19】
[Asp.Net Core] 1. IIS中的 Asp.Net Core 和 dotnet watch
在基于传统的.NET Framework的Asp.Net Mvc的时候,本地开发环境中可以在IIS中建立一个站点,可以直接把站点的目录指向asp.net mvc的项目的根目录。然后build一下就可以在浏览器里面刷新到最新的修改了,也可以附加到w3wp的进程进行调试。但是在开发基于.Net Core的Asp.Net Core项目的时候,这样的做法已经无法满足我们的需要了: 更改完代码build一下,无需部署即可在浏览器得到最新的更改。 附加到进程调试。 Asp.Net Core的项目需要先Pubilsh一下
blackheart
2018/01/19
1.8K0
[Asp.Net Core] 1. IIS中的 Asp.Net Core 和 dotnet watch
在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性
从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月13日发布了 .NET 8  RC 1: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc1/[1], 这是该框架在 11 月初正式发布之前的两个版本中的第一个。 .NET 8 RC1 是在生产中受支持,随着开发团队修复和完善内容,该框架基本上已经准备好了新的和令人兴奋的功能,以便在 11 月 14 日开始的 .NET Conf 2023 [2]期间正式发布RTM。
张善友
2023/09/14
8040
在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性
【译】.NET 7 预览版 1 中的 ASP.NET Core 更新
.NET 7 预览版 1 现已推出!这是 .NET 下一个主要版本的第一个预览版,其中将包括使用 ASP.NET Core 进行 Web 开发的下一波创新。
郑子铭
2022/03/08
4.3K0
【译】.NET 7 预览版 1 中的 ASP.NET Core 更新
.NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!
这是我们计划在今年晚些时候发布的最终.NET 8版本之前的两个候选版本中的第一个。大部分计划中的功能和变更都包含在这个候选版本中,可以供您尝试使用。您可以在文档中找到完整的ASP.NET Core在.NET 8中的新功能列表[1]。一些领域(尤其是Blazor)仍然有一些重大的变更待完成,我们预计将在下一个.NET 8候选版本中完成这些变更。
用户10786849
2023/10/13
6180
.NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!
推荐阅读
相关推荐
ASP.NET Core技术研究-探秘Host主机启动过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档