Visual Studio Blog

Today I will… Modernize a .NET application

8.5内容质量
Today I will… Modernize a .NET application

TL;DR · AI 摘要

微软展示了使用GitHub Copilot工具将.NET Framework应用升级到.NET 10的详细步骤,包含分阶段检查点和源码记录机制。

核心要点

  • 使用GitHub Copilot工具可自动完成.NET Framework到.NET 10的升级
  • 升级过程包含评估阻塞项、生成修复计划、分阶段执行三个核心步骤
  • 每个检查点生成Markdown文件用于源码控制,确保升级过程可追溯

结构提纲

按章节快速跳转。

  1. 介绍使用Visual Studio和GitHub Copilot进行.NET应用现代化的总体方法论

  2. BookCatalog是一个基于.NET Framework的简单图书管理应用

  3. 包含克隆仓库、启动现代化工具、评估项目、生成升级计划四个阶段

  4. 通过Guided模式分阶段执行升级,每个阶段生成可提交的Markdown报告

  5. 识别阻塞项、警告和信息性发现,优先处理关键问题

  6. 生成包含代码迁移方案(如EF6到EF Core)的具体执行步骤

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • .NET应用现代化
    • 工具链
      • GitHub Copilot
      • Visual Studio 2022+
    • 升级流程
      • 评估阻塞项
      • 生成修复计划
      • 分阶段执行
    • 关键迁移
      • EF6→EF Core
      • System.Web.Mvc→ASP.NET Core

金句 / Highlights

值得收藏与分享的关键句。

#.NET#Visual Studio#GitHub Copilot#Azure#代码现代化
打开原文

今天我将... 现代化.NET应用程序 - Visual Studio 博客

今天我将使用Visual Studio内置的GitHub Copilot现代化工具,将一个.NET Framework应用程序升级到.NET 10

该工具帮助我们升级运行在.NET旧版本上的应用程序,并将其迁移到Azure。今天我们将重点放在升级部分。

而且,该工具将为我们完成所有工作!但它不会一次性完成所有操作,这反而是好事。它在.NET升级过程中引入了检查点,告诉我们已经完成了哪些工作,然后我们可以引导它实现我们想要的结果。在每个检查点,它都会生成一个markdown文件,我们可以将其提交到源代码控制中——换句话说,这是升级过程中输出和输入内容的记录。

我们要现代化的应用程序

BookCatalog是一个简单的.NET Framework数据绑定窗体应用程序。你可以列出书籍、添加、编辑或删除书籍。

步骤1:打开示例

克隆

仓库

并从

code
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中使用

code
@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