我们尽可能地推迟了迁移,因为一开始似乎很困难。但是我们有一个坚持要立即迁移的客户。
因此,我们将他们开发在.NET Framework 4.8 Web Forms上的Fintech Web App迁移到了.NET 6 Razor Page上。在启动项目之前,我们的团队查看了数百个在线资源并与Microsoft Tech Support交谈。希望我们的项目概览可以帮助您计划迁移。
我们的.NET Framework网站由1个.NET Web Forms项目和12个类库组成。
这是我们的操作步骤:
1. 重构.NET Framework 4.8 Web Forms代码
我们确保Web Forms后面的代码没有任何一行服务或业务逻辑代码。当我们在Web Forms中找到一些业务逻辑代码时,我们通过将其移至类库来进行重构。
2. 创建新的.NET Standard项目
我们为每个.NET Framework 4.8类库创建了一个新的.Standard 2.0类库项目。如果原始项目的名称为"FintechProjectName.StockMarketClient",我们将.NET标准项目命名为"FintechProjectName.StockMarketClient.Standard"。
3. 将所有文件从.NET Framework复制到.NET Standard
我们将所有类文件从.NET Framework复制到.NET标准项目。然后,我们删除了解决方案中的所有.NET Framework类库,并添加了对新类库的引用。所有项目都在第一次编译时通过,所有测试用例也都通过了,只需要做一些小修改。
4. 创建新的.NET 6 Web App项目
我们创建了一个新的.NET 6 Web App项目。由于没有将Web Forms直接迁移到Razor Pages的直接路径,因此我们必须完全重新制作前端。这是唯一一个花费我们约1个月时间进行迁移的项目。
5. 在新的.NET 6网站中引用.NET标准类库
我们将所有.NET标准库复制到包含Razor Pages网站的新解决方案中。添加了这些引用并使其正常工作。
6. 从.NET Standard移动到.NET 6类库
一旦新网站正常运行,并通过了所有测试用例,我们进行了最后一步 - 创建每个.NET标准库的.NET 6类库项目,并适当地命名项目。将所有类文件从.NET标准项目复制到相应的.NET 6项目中。然后,我们删除了.NET标准库,并添加了对新类库的引用。
总体项目时间大约为一个半月,其中大部分时间都是用于使用相同的HTML设计实施Razor Pages。
注意:
如果您正在使用任何没有 .NET Standard 或 .NET 5 版本的第三方库,那么您将需要寻找替代的 NuGet 包并重新编写应用程序以使用这个新库。