Today I will… Modernize a .NET application

TL;DR · AI 摘要
微软展示了使用GitHub Copilot工具将.NET Framework应用升级到.NET 10的详细步骤,包含分阶段检查点和源码记录机制。
核心要点
- 使用GitHub Copilot工具可自动完成.NET Framework到.NET 10的升级
- 升级过程包含评估阻塞项、生成修复计划、分阶段执行三个核心步骤
- 每个检查点生成Markdown文件用于源码控制,确保升级过程可追溯
结构提纲
按章节快速跳转。
- §引言
介绍使用Visual Studio和GitHub Copilot进行.NET应用现代化的总体方法论
- ·目标应用
BookCatalog是一个基于.NET Framework的简单图书管理应用
- ›升级步骤
包含克隆仓库、启动现代化工具、评估项目、生成升级计划四个阶段
通过Guided模式分阶段执行升级,每个阶段生成可提交的Markdown报告
- ›评估阶段
识别阻塞项、警告和信息性发现,优先处理关键问题
- ›升级计划
生成包含代码迁移方案(如EF6到EF Core)的具体执行步骤
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- .NET应用现代化
- 工具链
- GitHub Copilot
- Visual Studio 2022+
- 升级流程
- 评估阻塞项
- 生成修复计划
- 分阶段执行
- 关键迁移
- EF6→EF Core
- System.Web.Mvc→ASP.NET Core
金句 / Highlights
值得收藏与分享的关键句。
升级工具会生成Markdown文件记录每个检查点的变更,便于源码控制
从System.Web.Mvc向ASP.NET Core的迁移是本案例的核心改造点
Guided模式允许在升级过程中随时审查和修改自动化生成的修复计划
今天我将... 现代化.NET应用程序 - Visual Studio 博客
今天我将使用Visual Studio内置的GitHub Copilot现代化工具,将一个.NET Framework应用程序升级到.NET 10。
该工具帮助我们升级运行在.NET旧版本上的应用程序,并将其迁移到Azure。今天我们将重点放在升级部分。
而且,该工具将为我们完成所有工作!但它不会一次性完成所有操作,这反而是好事。它在.NET升级过程中引入了检查点,告诉我们已经完成了哪些工作,然后我们可以引导它实现我们想要的结果。在每个检查点,它都会生成一个markdown文件,我们可以将其提交到源代码控制中——换句话说,这是升级过程中输出和输入内容的记录。
我们要现代化的应用程序
BookCatalog是一个简单的.NET Framework数据绑定窗体应用程序。你可以列出书籍、添加、编辑或删除书籍。
步骤1:打开示例
克隆
仓库
并从
shared-legacy-app/中打开BookCatalog.sln。
- git clone https://github.com/microsoft/dotnet-modernization-for-beginners.git
- 在你克隆的文件夹中的shared-legacy-app目录内,使用Visual Studio 2022+打开BookCatalog.sln
步骤2:启动现代化
在Visual Studio中,右键单击项目或解决方案并选择"Modernize"。你也可以从Visual Studio中使用
@Modernize启动。
这将打开GitHub Copilot聊天窗口,并加载定制化的现代化代理/体验。这个代理专门用于执行应用程序现代化的流程。
它提供了几个示例提示,但你也可以用自然语言告诉它要做什么。
但今天,选择顶部建议的提示
升级到更新版本的.NET。
ScriptorEndFragment
代理随后会问你两个问题。第一个是升级到哪个目标框架——选择
.NET 10
ScriptorStartFragment
然后是流程模式。还记得我之前说的现代化过程会在途中停在检查点吗?——只有当我们选择
Guided
模式时才会这样,所以请选择这个选项。
Guided模式会暂停并让你检查它的工作成果。
代理首先会评估我们的项目并生成报告。Guided模式允许我们审查该报告并进行修改。而且……我们可以将该报告提交到源代码控制中。(看起来不错 – 展示给老板看,你会显得非常高效!😉)
然后它会创建一个修复问题并执行升级的计划。Guided模式允许我们在需要时审查和更新该计划。Guided模式会逐步展示升级过程本身。你已经明白了吧。
步骤3:查看评估结果
它首先会执行评估。评估有助于在升级开始前区分阻碍项、警告和信息性发现。
评估帮助你理解必须首先进行哪些更改。在这个示例中,现代化工作包括从System.Web.Mvc模式转向ASP.NET Core等效实现,以及将数据层从Entity Framework 6迁移到EF Core。
步骤4:查看升级计划
在你批准评估后,代理将开始创建升级计划,并向你展示一些执行升级的选项。
我们可以修改代理创建升级计划的选项,但我们将采用默认设置。
然后它会生成升级计划。建议仔细阅读该计划。这将成为代理升级应用程序的基础。
第5步:升级!
批准计划后,代理将逐项执行任务。
引导模式会在每个任务之间暂停,以便您可以检查其工作进度。
完成五个任务后,升级就完成了!
验证结果
按F5启动应用程序,它应该可以正常启动。当然,这次是AI完成了工作。但AI可能第一次尝试并未成功。使用AI时,你永远无法得到完全相同的结果。在这种情况下,使用Visual Studio的GitHub Copilot调试功能,你应该能快速解决问题。
当应用程序成功启动时……它的界面看起来完全一样!现代化代理不会为你升级用户体验,这部分需要你自己去探索。
总结
应用程序已升级到.NET 10。如果你想,可以使用GitHub Copilot的.NET现代化工具将它迁移到Azure。
我们创建了一门课程:
[面向初学者的.NET现代化](链接)
深入讲解升级和迁移流程。点击查看。当然,也欢迎在本文下方留言,分享你的使用体验。
查看[面向初学者的.NET现代化](链接)课程!
.entry-content
AI免责声明
AI辅助内容。
本文部分内容由AI协助生成,作者已根据需要对内容进行了审核和修改。
了解更多信息 /think