通过


什么是GitHub Copilot应用现代化?

GitHub Copilot应用现代化工具是一个GitHub Copilot代理,帮助你将项目升级到较新版本的.NET,并快速且自信地将.NET应用程序迁移到Azure。 它指导你完成跨Visual Studio、Visual Studio Code、GitHub Copilot CLI 和 GitHub.com 的评估、解决方案建议、代码修复和验证。

使用此代理可以:

  • 升级到较新版本的 .NET。
  • 迁移技术和部署到Azure。
  • 将你的.NET应用进行现代化,尤其是在从 .NET Framework 升级时。
  • 评估应用程序的代码、配置和依赖项。
  • 规划和设置正确的 Azure 资源。
  • 修复问题并应用云迁移的最佳做法。
  • 验证您的应用程序是否已成功构建并通过测试。

提供反馈

Microsoft重视你的反馈,并使用它来改进这个智能助理。 有两种方法可以留下反馈:

先决条件

在使用代理之前,先在开发环境中设置 GitHub Copilot 应用程序现代化。 有关安装步骤,请参阅 Install GitHub Copilot app modernization

升级.NET项目

现代化代理支持升级以下类型的 C# 项目:

  • ASP.NET Core(MVC、Razor Pages 和 Web API 等相关技术)
  • Blazor
  • Azure Functions
  • Windows Presentation Foundation(WPF)
  • Windows Forms
  • 类库
  • 控制台应用

若要开始升级,请参阅 使用 GitHub Copilot 应用程序现代化进行 .NET 应用程序升级

升级路径

代理支持以下升级路径:

  • 将项目从较旧的.NET版本升级到最新版本。
  • 将 .NET Framework 项目升级到 .NET。
  • 通过使用新功能来现代化您的代码库。
  • 将组件和服务迁移到Azure。

将.NET项目迁移到Azure

现代化代理通过自动化分析、AI 驱动的代码修正、生成和漏洞检查以及部署自动化简化了Azure迁移:

  • 分析和智能建议

    评估应用程序的Azure迁移准备情况,并根据应用程序的依赖项和已发现的问题获得定制指导。

  • AI驱动的代码修正

    应用预定义的最佳做法代码模式,以尽量减少手动工作量加速现代化。

  • 自动构建和 CVE 解决

    生成应用并解决编译错误和漏洞,简化开发。

  • 无缝部署

    部署到 Azure,使代码从开发到生产更快。

预定义的迁移任务

GitHub Copilot 应用现代化项目针对 .NET 提供可用的预定义任务,体现行业最佳实践,以涵盖常见迁移情景。

  • 迁移到基于托管标识的 Azure 数据库,包括 Azure SQL DB、Azure SQL MI 和 Azure PostgreSQL

    通过从本地或旧数据库(如 DB2、Oracle DB 或 SQL Server)迁移到 Azure SQL DB、Azure SQL Managed Instance 或 Azure PostgreSQL,实现数据层现代化。 使用安全托管标识身份验证。

  • 将迁移到 Azure 文件存储

    将文件I/O操作从本地文件系统移动到 Azure 文件存储,实现可缩放的基于云的文件管理。

  • 迁移到 Azure Blob Storage

    用 Azure Blob 存储替换本地或跨云对象存储,以及本地文件系统的文件 I/O,以管理非结构化数据。

  • 迁移至 Microsoft Entra ID

    将身份验证和授权从Windows Active Directory转换到Microsoft Entra ID(以前Azure AD),以便进行新式标识管理。

  • 通过使用托管标识和 Azure Key Vault 迁移到安全的凭据

    将配置或代码中的纯文本凭据替换为使用托管标识和用于机密管理的Azure Key Vault以增强安全性。

  • 迁移到 Azure Service Bus

    从旧消息队列或第三方消息队列(如 MSMQ 或 RabbitMQ)或 Amazon SQS(AWS 简单队列服务)移动到Azure Service Bus,以实现可靠的基于云的消息传送。

  • 迁移到 Azure 通信服务电子邮件

    使用 Azure 通信服务替换直接 SMTP 电子邮件发送,实现可缩放的安全电子邮件传递。

  • 迁移到 Confluent Cloud/Azure 事件中心以使用 Apache Kafka

    使用 Confluent Cloud 或 Azure Event Hubs 从本地或内部部署的 Kafka 迁移到托管事件流服务。

  • 迁移到 Azure 上的 OpenTelemetry

    从 log4net、serilog 和 Windows 事件日志等本地日志记录框架转换到 Azure 上的 OpenTelemetry。

  • 使用托管标识迁移到 Azure Cache for Redis

    将内存中或本地 Redis 缓存实现替换为Azure Cache for Redis以实现高可用性、可伸缩性和企业级安全性。

工作原理

若要启动升级或迁移过程,请参阅:

  1. 在开发环境中打开.NET项目或解决方案。

  2. 使用以下方法之一启动代理:

    • Visual Studio:右键单击 Solution Explorer1 中的解决方案或项目,然后选择 Modernize。 或者打开 GitHub Copilot Chat 窗口,然后键入 @Modernize
    • Visual Studio Code:打开GitHub Copilot聊天面板并键入@modernize-dotnet
    • GitHub Copilot CLI:键入 @modernize-dotnet,然后输入您的升级或迁移请求。
    • GitHub.com:在存储库中使用 modernize-dotnet 编码代理。
  3. 告知代理要升级或迁移的内容。

当你要求现代化代理升级应用时,Copilot会首先提示你在使用 Git 存储库时创建一个新分支。 然后Copilot运行三个阶段工作流。 每个阶段都会在您的存储库的.github/upgrades下写入一个 Markdown 文件,方便您在继续之前查看下一步骤。 如果.github/upgrades已存在于之前的尝试中,Copilot 会询问您是继续还是重新开始。

  • 评估阶段 (assessment.md
    Copilot检查项目结构、依赖项和代码模式,以生成全面的评估。 本文档列出了中断性变更、API 兼容性问题、弃用的模式和升级范围,以便确切了解需要注意的内容。

  • 规划阶段 (plan.md
    Copilot将评估转换为详细说明如何解决每个问题的详细规范。 该计划记录了升级策略、重构方法、依赖项升级路径和风险缓解措施。

  • 执行阶段 (tasks.md
    Copilot将计划分解为具有验证条件的有序具体任务。 每个任务描述了单个更改,以及Copilot如何确认它成功。

编辑任何 Markdown 文件 .github/upgrades 以调整升级步骤或添加上下文,然后再继续。

执行升级

每个阶段完成后,根据需要查看和修改生成的任务,然后告知Copilot继续下一阶段。

到达执行阶段时,请通知 Copilot 开始升级。 如果Copilot遇到问题,它会尝试识别原因并应用修补程序。 如果Copilot无法纠正该问题,它会请求你的帮助。 进行干预时,Copilot从所做的更改中吸取教训,并在问题再次出现时尝试自动应用这些更改。

升级后的结果

当 Copilot 运行每一个任务时,它会更新 .github/upgrades 中的 tasks.md 文件,显示每个步骤的状态。 通过查看此文件来监视进度。 该工具会为流程的每个部分创建 Git 提交记录,以便回滚修改或者查看具体变更。

升级完成后,Copilot聊天响应中显示后续步骤。

遥测

该工具收集有关项目类型、升级意向和升级持续时间的数据。 开发环境收集和聚合数据,不包含任何用户身份信息。 有关Microsoft隐私策略的详细信息,请参阅 Visual Studio 客户体验改善计划