最全.NET Core各个版本特性整理,面试可能会考

    这个话题说来话长,有一次小白去面试,自高奋勇的聊到他使用过.NET6的经历,以及.NET6和.NET5开始文件的使用比较。这时面试官问了一句,那你知道.NET 6的新特性吗?这下小白蒙了,之前看过但是忘记了,这谁记这些呢,只记得.NET6开始支持HTTP3了。面试官提问的目的是因为小白聊到.NET6的使用,而想更深入的了解小白对.NET Core各个版本的熟悉程度。这小白给自己挖了一个坑啊。这个问题很大,其实如果小白真熟悉,可以说说最新的.NET6的部分新特性,不一定全回答。接下来我们来看看.NET Core各个版本的历史和特性。

1、.NET Core发展历程

    从2016年6月开始发布.NET Core 1.0 ,.NET Core已经经历过了8年,加上今年发布的.NET7 已经有7个版本了,几乎是一年一个版本。其中长期支持的版本是.NET Core 3.1和.NET 6,大家注意选择。下面是思维导图描述了他们的发展历程。

d1460dfc09478c94d924ea2b3f815616.png

2、.NET Core各个版本特性

.NET 6 (长期支持版本)

新特性:

  • 性能大幅提升

  • 支持热更新 Visual Studio 2022 和 .NET CLI 中支持,适用于 C# 和 Visual Basic

  • 支持C#10版本 ,例如记录结构、隐式使用和新的 lambda 功能

  • 具有原生设备功能的Blazor 桌面Web应用

  • 添加了 HTTP3支持

  • System.Text.Json APIs

  • 新的 LINQ API

  • 支持Arm64

  • 最小化 Web APIs(Mini API)

.NET 5

新特性:

  • 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

.NET Core 3.1(长期支持版本)

新特性包含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:默认情况下禁用 

.NET Core 2.2

新特性包含2.0、2.1, 新特性如下:

  • Razor Pages

  • ASP.NET Core 元包(注:即Microsoft.AspNetCore.All ,我喜欢称作全家桶,作用就是一把梭给你全部引用了相关的包,不用你发现没有的时候自己去找,方便是方便,就是把一堆没用到的也给引用了,项目加载速度也会受到影响)

  • .NET Standard 2.0

  • SPA 模板

  • Kestrel 改进(添加大量服务器约束配置选项)

  • WebListener 重命名为 HTTP.sys

  • 默认启用防跨站请求攻击(CSRF)

  • SignalR(已针对 ASP.NET Core 2.1 重新编写 SignalR:新 JavaScript 客户端不具有 jQuery 依赖项,新紧凑型二进制协议基于 MessagePack等)

  • Razor 类库(Razor Class Library)

  • Identity UI 库

  • HTTPS

  • GDPR(注:刚出来时,很多人发现Cookie写入不了就是因为开启了它)

  • 集成测试

  • [ApiController], ActionResult

  • 端点路由(Endpoint Routing)

  • 健康检查(HealthCheck)

  • HTTP/2

  • IIS 进程内承载

  • SignalR Java 客户端

  • CORS 改进

  • 响应压缩(ASP.NET Core 2.2 可以使用 Brotli 压缩格式来压缩响应。)

  • 提升 HttpClient 性能(通过改善连接池锁的冲突)

.NET Core 1.0

新特性:

  • URL 重写中间件

  • 响应缓存中间件

  • 查看组件 标记帮助程序

  • MVC 型中间件筛选器

  • 基于 Cookie 的 TempData 提供程序

  • Azure App Service 日志记录提供程序

  • Azure Key Vault 配置提供程序

  • Azure 和 Redis 存储数据保护密钥存储库

  • 适用于 Windows 的 WebListener 服务器(注:指 HTTP.sys 服务器)

  • WebSockets 支持

.NET 7

.NET 7有什么新特征呢,在今年11月份就会看到结果,我们拭目以待。 

结语

    本文讲述了.NET Core的发展历程和各个版本特性,大家可以参考一下,大家需要重点了解.NET5\.NET6,可能会问到。.NET Core让.NET有了跨时代的意义,比如可以跨平台运行、代码开源、模块化框架等,它不是.net framework的简单升级,而是根本性的变化;这里需要注意的是面试官会问 .NET Core相对.net framework的优点。希望本文对大家有所收获,同时欢迎大家留言和提出异议。

参考:微软官方文档

版权声明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。

技术群:添加小编微信并备注进群
小编微信:mm1552923   公众号:dotNet编程大全
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值