查看: 159|回复: 0

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

[复制链接]

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-3-8 16:01:50 | 显示全部楼层 |阅读模式
这个话题说来话长,有一次小白去面试,自高奋勇的聊到他使用过.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,大家注意选择。下面是思维导图描述了他们的发展历程。





2、.NET Core各个版本特性


.NET6(长期支持版本)
新特性:


  • 性能大幅提升
  • 支持热更新 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)


.NET5
新特性:

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

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

新特性包含3.0新特性如下:

  • Blazor Server
  • Blazor WebAssembly
  • Razor 组件
  • gRPC
  • http://ASP.NET Core 和 SignalR 默认使用 System.Text.Json 来进行序列化
  • http://ASP.NET Core 默认不再使用 WebHostBuilder ,而是使用 HostBuilder(可以更好地将 http://ASP.NET Core 应用与非 Web 特定的其他服务器方案集成)
  • Startup 类构造方法注入类型更改,只支持:IHostEnvironment,IWebHostEnvironment,IConfiguration
  • 默认情况下启用 HTTP/2
  • Kestrel:默认情况下禁用

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

  • Razor Pages
  • http://ASP.NET Core 元包(注:即Microsoft.AspNetCore.All ,我喜欢称作全家桶,作用就是一把梭给你全部引用了相关的包,不用你发现没有的时候自己去找,方便是方便,就是把一堆没用到的也给引用了,项目加载速度也会受到影响)
  • .NET Standard 2.0
  • SPA 模板
  • Kestrel 改进(添加大量服务器约束配置选项)
  • WebListener 重命名为 HTTP.sys
  • 默认启用防跨站请求攻击(CSRF)
  • SignalR(已针对 http://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 改进
  • 响应压缩(http://ASP.NET Core 2.2 可以使用 Brotli 压缩格式来压缩响应。)
  • 提升 HttpClient 性能(通过改善连接池锁的冲突)

.NETCore 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的优点。希望本文对大家有所收获,同时欢迎大家留言和提出异议。

参考:微软官方文档


版权声明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。
关注:DotNet开发跳槽觉得不错,请点个在看呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表