Что такое модернизация GitHub Copilot?

GitHub Copilot Modernization — это агент GitHub Copilot, который помогает быстро и уверенно обновлять проекты до более новых версий .NET и переносить приложения .NET в Azure. Этот инструмент проведет вас через процесс оценки, рекомендации по решениям, исправление кода и его проверку в Visual Studio, Visual Studio Code, GitHub Copilot CLI и на GitHub.com.

Используйте этот агент для:

  • Обновление до более новой версии .NET.
  • Перенос технологий и развертывание в Azure.
  • Модернизируйте приложение .NET, особенно при обновлении с .NET Framework.
  • Оцените код, конфигурацию и зависимости приложения.
  • Создание и настройка правильного ресурса Azure.
  • Устранение проблем и применение рекомендаций по миграции в облако.
  • Убедитесь, что ваше приложение успешно компилируется и тестируется.

Сценарии

Агент предоставляет несколько комплексных рабочих процессов модернизации, называемых сценариями. Каждый сценарий — это управляемый рабочий процесс, который поможет вам выполнить определенное обновление или миграцию.

Сценарий Описание Пример запроса
обновление версии .NET Обновление старых версий .NET до .NET 8, 9, 10 или более поздних версий. "Обновление решения до .NET 10"
Преобразование в стиле SDK Преобразует устаревший формат проекта в SDK-стиль. Преобразование в стиль SDK
Обновление Newtonsoft.Json Заменяет Newtonsoft.Json на System.Text.Json. Обновление с Newtonsoft.Json
Обновление SqlClient Обновляется с System.Data.SqlClient до Майкрософт.Data.SqlClient. Обновление SqlClient
обновление Функции Azure Обновляет Функции Azure от внутрипроцессной до изолированной рабочей модели. "Улучшение моих Функции Azure"
Semantic Kernel для агентов Обновляет агентов Semantic Kernel до Майкрософт Agent Framework. "Обновить моих агентов SK"

Полный обзор всех сценариев и 30+ встроенных навыков обновления см. в статье "Сценарии и справочник по навыкам".

Предоставьте отзыв

Майкрософт ценит ваши отзывы и использует их для улучшения агента. Оставьте отзыв с помощью любого из следующих вариантов:

Предпосылки

Настройте GitHub Copilot модернизацию в среде разработки перед использованием агента. Инструкции по установке см. в разделе Установка модернизации GitHub Copilot.

Обновление проектов .NET

Агент модернизации поддерживает обновление проектов C# и Visual Basic следующих типов:

  • ASP.NET Core (и связанные технологии, такие как MVC, Razor Pages и веб-API)
  • Blazor
  • Функции Azure (облачные функции)
  • Windows Presentation Foundation (WPF)
  • Windows Forms
  • WinUI
  • .NET MAUI и Xamarin
  • Библиотеки классов
  • Консольные приложения
  • Тестовые проекты (MSTest, NUnit и xUnit)

Чтобы начать обновление, см. раздел обновление приложения .NET с помощью модернизации GitHub Copilot.

Поддерживаемые варианты обновления

Агент поддерживает следующие пути обновления:

Исходный материал Цель
.NET Framework (любая версия) .NET 8 или более поздней версии
.NET Core 1.x–3.x .NET 8 или более поздней версии
.NET 5 или более поздней версии .NET 8 или более поздней версии

Перенос проектов .NET в Azure

Агент модернизации упрощает миграцию Azure с помощью автоматизированного анализа, исправления кода на основе искусственного интеллекта, проверки сборки и уязвимостей и автоматизации развертывания:

  • Анализ и интеллектуальные рекомендации.

    Оцените готовность приложения к миграции Azure и получите специальное руководство на основе зависимостей и выявленных проблем.

  • Исправление кода, на основе искусственного интеллекта.

    Применение стандартных шаблонов кода для ускорения модернизации с минимальными усилиями вручную.

  • Автоматическая сборка и решение уязвимостей CVE.

    Создайте приложение и устраните ошибки компиляции и уязвимости, оптимизируя разработку.

  • Простое развертывание.

    Развертывание в Azure, переводя ваш код из среды разработки в рабочую среду быстрее.

Предопределенные задачи для миграции

GitHub Copilot модернизация для .NET предлагает предопределенные задачи, которые фиксируют отраслевые передовые практики и охватывают распространенные сценарии миграции.

  • Выполните миграцию на базу данных с управляемой идентификацией в Azure, включая Azure SQL DB, Azure SQL MI и Azure PostgreSQL

    Модернизация уровня данных путем миграции из локальных или устаревших баз данных (например, DB2, Oracle DB или SQL Server) в базу данных Azure SQL, Управляемый экземпляр SQL Azure или Azure PostgreSQL. Используйте безопасную проверку подлинности управляемой идентичности.

  • Перемещение в Azure файловое хранилище

    Перемещение операций ввода-вывода файлов из локальной файловой системы в Azure хранилище файлов для масштабируемого облачного управления файлами.

  • Перемещение на Хранилище BLOB-объектов Azure

    Замените локальное или межоблачное хранилище объектов или локальный файловый ввод-вывод файловой системы на Хранилище BLOB-объектов Azure для неструктурированных данных.

  • Перейти на Microsoft Entra ID

    Переход проверки подлинности и авторизации с Windows Active Directory на Microsoft Entra ID (ранее Azure AD) для современного управления удостоверениями.

  • Перейдите к защищенным учетным данным, используя управляемую идентификацию и Azure Key Vault

    Замените нешифрованные учетные данные в конфигурации или коде на безопасные удостоверения из управляемых источников и используйте Azure Key Vault для управления секретами.

  • Перенос на Служебная шина Azure

    Переход от устаревших или сторонних очередей сообщений (например, MSMQ или RabbitMQ) или Amazon SQS (простая служба очередей AWS) в Служебная шина Azure для надежного облачного обмена сообщениями.

  • Перенос на службу электронной почты Azure Communication Service

    Замените прямую отправку электронной почты SMTP на службу коммуникации Azure для масштабируемой, безопасной доставки электронной почты.

  • Migrate to Confluent Cloud/Azure Event Hub for Apache Kafka

    Переход с локальной или локальной Kafka на управляемую потоковую передачу событий с помощью Confluent Cloud или Центры событий Azure.

  • Перейти на OpenTelemetry в Azure

    Переход с локальных платформ логирования, таких как log4net, Serilog и на Windows журнал событий, к OpenTelemetry на Azure.

  • Перейдите на Azure Cache для Redis, используя управляемое удостоверение

    Замените реализацию кэша Redis в памяти или локальном кэше на Кэш Azure для Redis для обеспечения высокой доступности, масштабируемости и корпоративной безопасности.

Принцип работы

Чтобы запустить процесс обновления или миграции, ознакомьтесь со следующими сведениями:

  1. Откройте проект или решение .NET в среде разработки.

  2. Запустите агент с помощью одного из следующих методов:

    • Visual Studio: щелкните правой кнопкой мыши решение или проект в Обозреватель решений и выберите Modernize. Или откройте окно GitHub Copilot Chat и введите @Modernize.
    • Visual Studio Code: откройте панель GitHub Copilot Chat и введите @modernize-dotnet.
    • GitHub Copilot CLI: введите @modernize-dotnet следом за вашим запросом на обновление или миграцию.
    • GitHub.com. Используйте агент кодирования modernize-dotnet в репозитории.
  3. Сообщите агенту, что нужно обновить или перенести.

При обращении к агенту модернизации с просьбой улучшить ваше приложение, сначала Copilot предложит создать новую ветвь, если вы работаете в репозитории Git. Затем Copilot оценивает проект и запускает трехэтапный рабочий процесс. Каждый этап создает файлы Markdown .github/upgrades/{scenarioId} в вашем репозитории, чтобы вы могли просмотреть следующее, прежде чем продолжить. Если .github/upgrades/{scenarioId} уже существует из предыдущей попытки, Copilot спрашивает, продолжить или начать заново.

Copilot начинается с изучения структуры проекта, зависимостей и шаблонов кода для создания комплексной оценки. В assessment.md файле перечислены критические изменения, проблемы совместимости API, устаревшие шаблоны и область обновления.

После оценки Copilot выполняет следующие три этапа:

  1. Assessment: Copilot проверяет структуру проекта, зависимости и шаблоны кода, а затем предоставляет решения о стратегии для проверки, например стратегию обновления (снизу вверх, сверху вниз или все сразу), подход к обновлению проекта, параметры модернизации технологий и обработку совместимости. Копилот сохраняет подтвержденные решения в upgrade-options.md.

  2. Planning: Copilot преобразует оценку и подтвержденные параметры в подробную спецификацию. Файл plan.md документирует стратегии обновления, подходы к рефакторингу, пути зависимостей и митигацию рисков.

  3. Execution: Copilot разбивает план на последовательные, конкретные задачи с критериями проверки в tasks.md. Каждая задача описывает одно изменение и то, как Copilot подтверждает его успешность.

Измените любой из файлов Markdown, .github/upgrades/{scenarioId} чтобы изменить шаги обновления или добавить контекст перед переходом вперед.

Стратегии обновления

На этапе оценки агент оценивает решение и рекомендует одну из следующих стратегий:

Стратегия лучше всего подходит для Описание
Снизу вверх Крупные решения с графами глубоких зависимостей Сначала обновляет конечные проекты, а затем работает по иерархии вверх.
Сверху вниз Быстрая обратная связь с основным приложением Сначала обновляет проект приложения, а затем исправляет зависимости.
Все одновременно Небольшие, простые решения Обновляет все проекты за один проход.

Режимы потока

Агент поддерживает два режима потока, которые регулируют то, как он делает паузы, ожидая вашего ввода.

  • Автоматически: Агент работает на всех этапах без приостановки, остановившись только на подлинных блокировщиках. Лучше всего подходит для опытных пользователей и простых обновлений.
  • Руководство: Агент приостанавливается на каждом этапе, чтобы вы могли ознакомиться с оценкой, планом и задачами перед продолжением. Лучше всего подходит для первых пользователей и сложных решений.

Переключитесь между режимами в любое время, сказав "пауза" (для ввода интерактивного режима) или "продолжить" (для ввода автоматического режима).

Управление состоянием

Агент сохраняет все состояние обновления в .github/upgrades/{scenarioId}/. Папка содержит следующее:

Файл Purpose
assessment.md Анализ решения
upgrade-options.md Подтвержденные решения об обновлении
plan.md Упорядоченный план задач
tasks.md Панель мониторинга текущего прогресса
scenario-instructions.md Постоянная память агента, включая предпочтения, решения и пользовательские инструкции
execution-log.md Подробный журнал аудита всех изменений
tasks/{taskId}/task.md Область и контекст для каждой задачи
tasks/{taskId}/progress-details.md Заметки и результаты выполнения для каждой задачи

Так как все состояния находятся в этой папке, вы можете закрыть интегрированную среду разработки, переключиться между сеансами или даже переключаться между средами разработки (например, начать в VS Code и продолжить в Visual Studio). Агент продолжает с того места, где остановился.

Подсказка

Зафиксируйте папку в .github/upgrades/ ветви. Зафиксированное состояние служит резервным копированием и позволяет участникам команды просматривать ход обновления.

Выполните обновление

После завершения каждого этапа просмотрите и измените созданные файлы по мере необходимости, а затем сообщите Copilot продолжить переход к следующему этапу.

Когда вы достигнете этапа Execution, попросите Copilot, чтобы он начал обновление. Если у Copilot возникает проблема, он пытается определить причину и устранить её. Если Copilot не удается исправить проблему, она просит вашу помощь. Когда вы вмешиваетесь, Copilot учится от внесенных изменений и пытается автоматически применить их, если проблема возникает снова.

Результаты модернизации

Так как Copilot выполняет каждую задачу, он обновляет файл tasks.md в .github/upgrades/{scenarioId} с состоянием каждого шага. Отслеживайте ход выполнения, просматривая этот файл. Copilot создает фиксацию Git для каждой части процесса, чтобы можно было откатить изменения или просмотреть изменения.

После завершения обновления Copilot отобразит следующие шаги в ответе чата.

Телеметрия

Средство собирает данные о типах проектов, намерениях по обновлению и длительности обновления. Среда разработки собирает и агрегирует данные и не содержит никакой информации, идентифицирующей пользователя. Дополнительные сведения о политике конфиденциальности Майкрософт см. в разделе Visual Studio Программа улучшения качества обслуживания клиентов.