什么是 GitHub Copilot 应用现代化

GitHub Copilot 应用现代化是一个 GitHub Copilot 代理,它能够帮助将项目升级到较新版本的 .NET,并通过在 Visual Studio 中指导您完成评估、推荐解决方案、代码修复和验证,快速且自信地将 .NET 应用程序迁移到 Azure。

此过程简化了现代化,提高了开发人员的工作效率和信心。 GitHub Copilot 应用现代化是一个一体的升级和迁移助手,它使用 AI 来提高开发人员的速度、质量和结果。

使用此助手,可以:

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

提供反馈

反馈对于Microsoft和此代理的效率非常重要。 使用 “建议功能 ”和 “报告 Visual Studio 的问题”功能来提供反馈。

先决条件

升级 .NET 项目

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

  • ASP.NET 和相关技术,如 MVC、Razor Pages、Web API
  • Blazor
  • Azure Functions
  • Windows Presentation Foundation
  • Windows 窗体
  • 类库
  • 控制台应用

若要了解如何开始升级,请参阅 如何使用 GitHub Copilot 应用现代化升级 .NET 应用

升级路径

支持下列升级路径:

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

将 .NET 项目迁移到 Azure

现代化代理结合了自动化分析、AI 驱动的代码修正、生成和漏洞检查以及部署自动化,以简化到 Azure 的迁移。 以下功能描述了代理如何评估就绪情况、应用修补程序并简化迁移过程:

  • 分析和智能建议。

    评估应用程序的 Azure 迁移准备情况,并根据应用程序的依赖项和已确定的问题接收定制指南。

  • AI驱动的代码改进。

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

  • 自动构建和 CVE 解析。

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

  • 无缝部署。

    毫不费力地部署到 Azure,使代码从开发到云的速度比以往更快。

预定义的迁移任务

预定义的任务捕获使用 Azure 服务的行业最佳做法。 目前,适用于 .NET 的应用现代化(预览版)提供涵盖常见迁移方案的预定义任务。

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

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

  • 迁移到 Azure 文件存储

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

  • 迁移到 Azure Blob 存储

    将本地或跨云对象存储或本地文件系统文件 I/O 替换为用于非结构化数据的 Azure Blob 存储。

  • 迁移到 Microsoft Entra ID

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

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

    将配置或代码中的纯文本凭据替换为安全的托管身份,并使用 Azure Key Vault 进行密钥管理。

  • 迁移到 Azure 服务总线

    从旧消息队列或第三方消息队列(如 MSMQ 或 RabbitMQ)迁移到 Azure 服务总线,以实现可靠的基于云的消息传送。

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

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

  • 迁移到用于 Apache Kafka 的 Confluent Cloud/Azure 事件中心

    从本地或内部部署的 Kafka 迁移到使用 Confluent Cloud 或 Azure 事件中心的托管事件流处理。

  • 迁移到 Azure 上的 OpenTelemetry

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

工作原理

请求现代化代理升级或迁移应用后,Copilot 会分析项目及其依赖项,然后询问有关升级或迁移的一系列问题。 回答这些问题后,会以 Markdown 文件的形式编写计划。 如果你告知 Copilot 继续执行升级或迁移,它会遵循计划中所述的步骤。

可以通过编辑 Markdown 文件来更改升级步骤或添加更多上下文来调整计划。

执行升级或迁移

计划准备就绪后,请告知 Copilot 开始使用该计划。 进程一旦启动,Copilot 会在聊天窗口中告知你它正在执行的任务,并打开 升级进度详细信息 文档,其中列出每个步骤的状态。

如果遇到问题,Copilot 会尝试识别问题的原因并应用修补程序。 如果 Copilot 似乎无法纠正该问题,它会请求你的帮助。 当你进行干预时,Copilot 会从所做的更改中学习,并尝试自动为你应用这些更改,如果问题再次遇到。

计划中的每个主要步骤都提交到本地 Git 存储库。

升级和迁移结果

该过程完成后,将生成一个报告,描述 Copilot 执行的每个步骤。 该工具会为该过程的每个部分创建 Git 提交,以便可以轻松回滚更改或获取有关更改的详细信息。 报告包含 Git 提交哈希值。

该报表还提供了一个 “后续步骤 ”部分,描述升级完成后应执行的步骤。

遥测

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