Поделиться через


Модернизация или перенос приложения Windows с помощью GitHub Copilot

Если у вас есть существующее приложение Windows — проект UWP, классическое приложение WPF или WinForms или кроссплатформенное приложение Electron или Flutter, GitHub Copilot может значительно ускорить процесс его обновления для современных Windows. В этой статье показаны ключевые сценарии и инструменты, которые делают их практическими.

Перед началом работы

Убедитесь, что у вас настроены ключевые средства:

  • GitHub Copilot с подключаемым модулем разработки WinUI 3 — обрабатывает рекомендации по миграции API и создает правильный современный код.
  • Майкрософт Learn MCP Server — предоставляет Copilot доступ к текущей документации по Windows App SDK
  • winapp CLI — добавляет удостоверение пакета и пакетирование Windows в любой фреймворк.

Если вы еще не настроили эти параметры, начните с Set up GitHub Copilot for Windows development.


Перенос приложения UWP в WinUI 3

WinUI 3 является современным преемником уровня пользовательского интерфейса UWP. API похожи, но не идентичны — пространства имен перемещены, некоторые элементы управления изменились, а модель приложения отличается. Навык руководства по миграции WinUI 3 делает это возможно.

Запуск руководства по миграции

В Copilot Chat запустите навык руководства по миграции:

/winui3-development:winui3-migration-guide

Это создает структурированный план миграции, адаптированный к проекту, в том числе:

  • Контрольный список изменений файла проекта и манифеста
  • Таблица сопоставлений пространства имен API (например, Windows.UI.XamlМайкрософт.UI.Xaml)
  • Распространенные подстановки элементов управления и примеры кода до и после
  • Различия в упаковке и развертывании

Перенос файла

Откройте исходный файл UWP и попросите Copilot перенести его:

"Перенос этого файла из UWP в WinUI 3. Замените все устаревшие API UWP эквивалентами WinUI 3. Помечает все, что требуется ручной проверки".

Инструкции по настройке подключаемого модуля WinUI 3 позволяют Copilot делать правильные замены. К общим относятся:

UWP (Универсальная платформа Windows) WinUI 3
Windows.UI.Xaml.* Microsoft.UI.Xaml.*
CoreDispatcher / RunAsync DispatcherQueue / TryEnqueue
MessageDialog ContentDialogXamlRoot)
Windows.UI.Popups Microsoft.UI.Xaml.Controls
BackgroundTaskBuilder API фоновых задач Windows App SDK

Что Copilot может и не может делать автоматически

Copilot хорошо справляется с большинством переопределений пространств имен и простых подстановок API. Существуют области, которые нуждаются в проверке человека:

  • изменения модели App — события жизненного цикла UWP (Suspending, Resuming) не сопоставляют напрямую с WinUI 3; Copilot может предложить альтернативные варианты, но вам потребуется проверить поведение.
  • Словари ресурсов XAML — ресурсы темы и пользовательские стили могут потребовать ручной корректировки
  • Фоновые задачи — модель упаковки отличается; используйте интерфейс командной строки winapp для задания новых элементов манифеста

Модернизация приложения WPF или WinForms

Следует ли обновить или перестроиться с помощью WinUI 3?

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

Ваша ситуация Рекомендуемый путь
Продолжайте WPF или WinForms в качестве платформы пользовательского интерфейса, перейдите к .NET 9+ Обновление на месте — используйте агент GitHub Copilot по модернизации приложений для автоматизации изменений файла проекта и кода.
Добавление современных функций Windows (уведомлений, ИИ, интеграции оболочки) в существующее приложение без изменения платформы пользовательского интерфейса Добавьте функции Windows App SDK — см. приведенные ниже сценарии; используйте CLI winapp для добавления удостоверения пакета при необходимости.
Требуется современный пользовательский интерфейс Fluent, поддержка сенсорного ввода, глубина WinRT или новая база кода Перестройка с WinUI 3 — см. шаблоны WPF в WinUI 3 для сопоставления API; для подхода с поддержкой Copilot см. статью Миграция приложения UWP в WinUI 3 (специфично для UWP, однако рабочий процесс с использованием Copilot аналогичен)
Бизнес-приложение с элементами управления WCF, COM или трудоемкими сторонними интерфейсами управления. Сперва выполните обновление на месте, а затем постепенно модернизируйте — агент модернизации приложений GitHub Copilot может помочь в обновлении WCF → CoreWCF, EF и ASP.NET Core

Замечание

"Обновление" (переход на более новую версию .NET в той же платформе пользовательского интерфейса) и "перестроение" (переход к WinUI 3) являются отдельными решениями. ** Теперь вы можете обновить сейчас и перестроить позже, или выполнить оба действия вместе для нового проекта. Агент модернизации приложений GitHub Copilot охватывает путь обновления. В разделах ниже описано добавление Windows App SDK функций в существующее приложение.

WPF и приложения WinForms могут применять Windows App SDK функции без полного перезаписи. Copilot + сервер Learn MCP упрощает поиск и интеграцию конкретных функций.

Добавление push-уведомлений

"У меня есть приложение WPF, предназначенное для .NET 8. Покажите мне, как добавить push-уведомления Windows с помощью Windows App SDK. Приложение в настоящее время не упаковано".

С помощью сервера Learn MCP программа Copilot извлекает актуальную документацию по уведомлениям Windows App SDK и генерирует код для интеграции. Следует также учитывать, что уведомления требуют удостоверения пакета, и предлагается использовать winapp CLI для его добавления.

winapp init
winapp create-debug-identity --publisher "CN=MyApp"

Модернизация внешнего вида и чувства приложения

Мое WPF-приложение выглядит устаревшим. Сделайте его современным с функцией темного режима и боковой панелью навигации, как это используется в современных приложениях Windows.

Добавление средства выбора файлов с помощью Windows App SDK

"Замените использование моего WPF OpenFileDialog с Windows App SDK StorageFilePicker, чтобы улучшить современный пользовательский опыт в Windows."

Добавление уведомлений Windows

"Добавьте уведомление, которое сообщает пользователю, когда фоновая задача завершится".

Copilot распознает, что это требует идентификатор пакета Windows и предлагает использовать winapp CLI для добавления упаковки MSIX, объясняя, что это такое и почему это необходимо. После настройки упаковки он предоставит код уведомления Windows.

Попросите Copilot, чтобы он вас провел через это.

Я хочу, чтобы мое приложение отображало всплывающее уведомление Windows. Объясните, что мне нужно сначала настроить".


Добавление функций Windows в кроссплатформенное приложение

Приложения Electron, Flutter, React Native и Rust могут стать полноправными элементами экосистемы Windows с winapp CLI. Copilot помогает адаптировать код для API Windows после того, как у вас есть идентификатор пакета.

Электрон

npm install @microsoft/winappcli --save-dev
npx winapp init
npx winapp node create-addon --feature notifications

После создания шаблонов надстройки попросите Copilot интегрировать его:

Я подготовил надстройку уведомлений Windows для приложения Electron, используя winapp CLI. Покажите мне, как отправить уведомление из основного процесса после завершения скачивания".

Полное пошаговое руководство см. в руководстве по настройке Electron.

Трепетание

winapp init

"У меня есть приложение Flutter для Windows. Показать мне, как использовать Windows App SDK, чтобы добавить значок области системы с контекстным меню".

Дополнительные сведения о настройке Windows см. в руководстве Flutter.

WPF / .NET

"У меня есть приложение WPF. Покажите мне, как использовать интерфейс командной строки winapp CLI для добавления упаковки MSIX, а затем добавить функцию встроенного искусственного интеллекта на устройство, используя API Windows AI.

См. руководство .NET.


Что разблокируется идентификатором пакета

Для многих мощных функций Windows требуется package identity — который winapp CLI может добавить в любую платформу. После этого Copilot поможет вам использовать следующее:

Функция Что можно спросить у Copilot
Уведомления приложения "Добавьте уведомление Windows при завершении моего фонового задания"
ИИ на устройстве (Phi Silica, распознавание текста) "Добавление локального текстового суммирования с использованием API Windows ИИ"
интеграция оболочки Windows (лист общего доступа, панель задач) "Добавьте цель для общего доступа, чтобы пользователи могли делиться в моё приложение из Проводника"
Фоновые задачи "Выполнение фоновой задачи каждый час даже при закрытии приложения"
Сопоставления типов файлов "Зарегистрируй мое приложение для открытия файлов .notes"

Дальнейшие действия