微软宣布,将于 2022 年 12 月 13 日停止为 .NET Core 3.1 提供服务更新、安全修复和技术支持。并且微软建议用户尽快迁移到 .NET 6,即该平台当前的长期支持(LTS)版本。
于是乎决定把框架版本,直接升级到 .Net6

我自己的做法是,直接新增一个 .Net6 的项目,把原本 .Net Core 的原型项目文件搬过去,然后升级对应的 nuget 包,对比下两个框架的差异,以及并测试下 .Net Core 和 .Net6 的 Web API 性能对比

一.差异
1.Bitmap 仅在 Windows 上支持了,如果需要在 Linux 上运行,需要改用其他类库,如 ImageSharp

2.无需 startup.cs 文件(合并在 program.cs 文件中)

3.支持全局 Using 指令,可以新建一个类文件,把 using namespace 都写进去,其他文件就不需要再额外引入了

4.支持顶级语句语法

5.可空引用类型(比较直观的感受是,升级后,之前某些函数返回的引用类型的结果,会变为可空引用类型,然后就会出现可空的警告信息)

6.dotnet 命令启动没有任何提示了,.Net Core 3.1 则会提示监听的地址等相关信息

7.自定义访问地址需要通过以下形式

Program.cs

builder.WebHost.UseUrls("http://localhost:80");
var app = builder.Build();

二.性能对比
1.使用压测工具,对 Web API 进行请求,对比两者的 QPS
结论:发现都差不多

2.编写一个 API(DB Insert 相关业务,数据库为 MySQL ),查看插每秒能连续 Insert 多少条数据(EF Core 版本之间的性能对比)
服务器配置:2核 4G
.Net 6,每秒平均能插入 10w 条数据
.Net Core 3.1,每秒平均能插入 7w 条数据