Asp.NetCore3.1开源项目升级为.Net6.0

232 阅读2分钟

.Net6是继.NetCore 3.1之后的有一LTS长期支持版本,我们一般会将.NetCore3.1项目直接升级到.Net6,网上有很多人说,需要先从.NetCore3.1升级到.Net5,再升级到.Net6,其实我觉得直接从.NetCore3.1升级到.Net6更简单。

后端有2个项目,1个是webapi ,使用的是.NetCore3.1开发;第2个是Web项目,使用的是 Asp.NetCore 3.1 Mvc 。

现在要将这2个项目全部升级到.Net6 。 我们先将webapi升级。步骤如下:

1、将所有项目的“目标框架”改为.Net6.0;

2、将.NetGet全部升级到最新版本;不需要管各个组件啥版本,只管升级最新版即可;

3、将所有项目的bin和obj全部删除;

4、重新生成整个解决方案;若组件不需要调整,则基本上算是升级成功了。

一般来说,有一些组件会调整,比如 mysql的客户端组件,redis的客户端组件;百度一下,或者找下官方网址,github仓库地址,基本上都能找到最新版本的使用说明。还有一种取巧的方法,这些组件的.net5里的使用,基本上可以延续到.net6里,所以百度找到关于.net5环境下的使用方法,基本上也适用于.Net6 。

.Net6的优势:

微软更新.NET 6的底层平台,使其能够满足所有类型的应用程序需求,让开发者可以在所有应用程序中,重复使用程序代码,因此新功能和更新,可以同时使用在所有应用程序,云计算和移动设备中执行的程序代码,都能具有相同的行为,也就是说,所有平台的应用程序,都可以使用相同的.NET函数库,并且简单地共享程序代码。

.NET 6还有一个主打的新功能,便是.NET多平台应用程序UI(Multi-platform App UI,MAUI),开发者现在可以在单一项目中编写程序代码,并直接提供跨桌面和移动设备的客户端应用程序,实现写一次到处执行的理想,不过该项功能会比.NET 6还要晚一点发布。

微软也花了许多心力在改善.NET 6性能中,重大的改进包括PGO、文件IO和接口转换(Interface Casting)。微软提到,动态PGO(Dynamic Profile-guided Optimization)能够明显提高稳态(Steady State)性能,以TechEmpower JSON MVC组件来说,每秒钟的请求数能够从510K提高到640K,增加26%。