Modernize ou porte uma aplicação Windows com o GitHub Copilot

Se já tem uma aplicação Windows — um projeto UWP, uma aplicação de ambiente de trabalho WPF ou WinForms, ou uma aplicação multiplataforma Electron ou Flutter — o GitHub Copilot pode acelerar significativamente o processo de atualização para o Windows moderno. Este artigo mostra os cenários-chave e as ferramentas que os tornam práticos.

Antes de começar

Certifique-se de que tem as principais ferramentas configuradas:

  • GitHub Copilot com o plugin de desenvolvimento WinUI 3 — gere orientações de migração de APIs e gera código moderno correto
  • Microsoft Learn MCP Server — dá ao Copilot acesso à documentação atual do SDK de Aplicações Windows
  • winapp CLI — adiciona identidade de pacote e empacotamento de Windows a qualquer framework

Se ainda não configuraste estes, começa por configurar GitHub Copilot para Windows desenvolvimento.


Migrar uma aplicação UWP para o WinUI 3

O WinUI 3 é o sucessor moderno da camada UI do UWP. As APIs são semelhantes mas não idênticas — os namespaces mudaram, alguns controlos mudaram e o modelo da aplicação é diferente. A utilização do guia de migração do WinUI 3 torna isto fácil de tratar.

Execute o guia de migração

No Copilot Chat, inicia a funcionalidade do guia de migração:

/winui3-development:winui3-migration-guide

Isto produz um plano de migração estruturado adaptado ao seu projeto, incluindo:

  • Uma lista de verificação das alterações ao manifesto e ao ficheiro do projeto
  • Uma tabela de mapeamentos de namespace da API (por exemplo, Windows.UI.XamlMicrosoft.UI.Xaml)
  • Substituições comuns de controlo e exemplos de código antes/depois
  • Diferenças de empacotamento e implementação

Migrar um ficheiro

Abra um ficheiro-fonte UWP e peça ao Copilot para o migrar:

"Migra este ficheiro do UWP para o WinUI 3. Substituir todas as APIs UWP obsoletas pelas suas equivalentes ao WinUI 3. Assinala tudo o que precise de revisão manual."

As instruções personalizadas do plugin WinUI 3 guiam o Copilot para fazer substituições corretas. Os mais comuns incluem:

UWP WinUI 3
Windows.UI.Xaml.* Microsoft.UI.Xaml.*
CoreDispatcher / RunAsync DispatcherQueue / TryEnqueue
MessageDialog ContentDialog (com XamlRoot)
Windows.UI.Popups Microsoft.UI.Xaml.Controls
BackgroundTaskBuilder APIs de tarefas em segundo plano do SDK de Aplicações Windows

O que o Copilot pode e não pode fazer automaticamente

O Copilot gere bem a maior parte do remapeamento de namespace e substituições simples de APIs. Existem áreas que precisam de revisão humana:

  • Alterações ao modelo da aplicação — Os eventos do ciclo de vida do UWP (Suspending, Resuming) não correspondem diretamente ao WinUI 3; O Copilot pode sugerir alternativas, mas vais precisar de verificar o comportamento
  • Dicionários de recursos XAML — recursos de temas e estilos personalizados podem necessitar de ajustes manuais
  • Tarefas de fundo — o modelo de embalagem é diferente; usar a linha de comando winapp para configurar as novas entradas do manifesto

Modernizar uma aplicação WPF ou WinForms

Devo atualizar no local ou reconstruir com o WinUI 3?

Antes de começares, vale a pena decidir qual a direção que faz sentido para a tua aplicação. Existem alguns caminhos distintos com diferentes ferramentas e âmbito.

A sua situação Caminho recomendado
Mantém o WPF ou WinForms como framework de interface, muda para o .NET 9+ Upgrade in place — use o agente de modernização GitHub Copilot para .NET para automatizar as alterações no ficheiro do projeto e no código
Adicione funcionalidades modernas do Windows (notificações, IA, integração com shell) à sua aplicação existente sem alterar o framework da interface Adicionar SDK de Aplicações Windows funcionalidades — veja os cenários abaixo; use a CLI do winapp para adicionar identidade de pacote, se necessário
Preciso de uma interface Fluent moderna, suporte tátil, profundidade WinRT ou uma base de código nova Reconstrua com o WinUI 3 — veja os padrões WPF no WinUI 3 para mapeamento de API; para uma abordagem assistida pelo Copilot veja Migre um aplicativo UWP para WinUI 3 (específico para UWP, mas o fluxo de trabalho do Copilot é semelhante)
Aplicação LOB com WCF, COM ou controlos pesados de interface de terceiros Atualize primeiro com a configuração existente, depois modernize por etapas — o agente de modernização GitHub Copilot para .NET pode ajudar com atualizações WCF → CoreWCF, EF e ASP.NET Core

Observação

"Atualizar" (migrar para uma versão mais recente de .NET no mesmo framework de interface) e "reconstruir" (migrar para o WinUI 3) são decisões separadas. Pode atualizar agora e reconstruir posteriormente, ou fazer ambos juntos para uma substituição de tipo 'greenfield'. A modernização do GitHub Copilot para .NET cobre o caminho da atualização; as secções abaixo abordam a adição de funcionalidades do SDK de Aplicações Windows à sua aplicação existente.

As aplicações WPF e WinForms podem adotar funcionalidades do SDK de Aplicações Windows sem necessidade de uma reescrita completa. O Copilot + o Learn MCP Server facilita a localização e integração de funcionalidades específicas.

Adicionar notificações push

"Tenho uma aplicação WPF direcionada para .NET 8. Mostra-me como adicionar notificações push do Windows usando o SDK de Aplicações Windows. A aplicação não está atualmente empacotada.

Com o Learn MCP Server, o Copilot acede a documentação atual de notificações do SDK de Aplicações Windows e gera código de integração. O suporte básico de notificações push funciona para aplicações não embaladas. No entanto, se a sua aplicação precisar de receber notificações push enquanto não está a correr — o cenário de produção mais comum — a ativação COM e a entrega em segundo plano exigem identidade de pacote. O Copilot pode guiá-lo como adicionar embalagens com o winapp CLI, se necessário.

Modernize o aspeto e a sensação da aplicação

"A minha aplicação WPF parece datada. Faz com que pareça moderno com uma opção de modo escuro e uma barra lateral de navegação, como as aplicações modernas do Windows usam."

Adicionar um seletor de ficheiros usando o SDK de Aplicações Windows

"Substituir o meu uso de WPF OpenFileDialog pelo SDK de Aplicações Windows StorageFilePicker para uma melhor experiência Windows moderna."

Adicionar notificações do Windows

"Adicione uma notificação que informe o utilizador quando uma tarefa em segundo plano é concluída."

O Copilot fornecerá o código de notificação do SDK de Aplicações Windows. As notificações de aplicações funcionam tanto em aplicações empacotadas como não embaladas — não é necessária identidade de pacote.

Peça ao Copilot para te explicar passo a passo:

Quero que o meu app mostre uma notificação de alerta no Windows. Explica o que preciso de preparar primeiro."


Adicionar funcionalidades do Windows a uma aplicação multiplataforma

As aplicações Electron, Flutter, React Native e Rust podem todas tornar-se cidadãos Windows de primeira classe com winapp CLI. O Copilot ajuda-te a adaptar o teu código para APIs do Windows assim que tiveres identidade de pacote.

Elétron

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

Depois de o addon estar estruturado, peça ao Copilot para o integrar:

"Preparei um addon de notificações do Windows para a minha aplicação Electron usando a linha de comando winapp. Mostra-me como enviar uma notificação do processo principal quando um download terminar."

Para um guia completo, consulte o guia de configuração da Electron.

Flutter

winapp init

"Tenho uma aplicação Flutter para Windows. Mostra-me como usar o SDK de Aplicações Windows para adicionar um ícone na bandeja do sistema com um menu contextual."

Veja o guia Flutter para configuração específica para Windows.

WPF / .NET

"Tenho uma aplicação WPF. Explique-me como usar o winapp CLI para adicionar a embalagem MSIX e depois adicionar uma funcionalidade de IA no dispositivo usando as APIs de IA do Windows."

Consulte o guia .NET.


O que é desbloqueado pela identidade do pacote

Muitas funcionalidades Windows poderosas requerem identidade de pacote — que a CLI do winapp pode adicionar a qualquer framework. Depois de o tiver, o Copilot pode ajudá-lo a usar:

Feature O que perguntar ao Copilot
Notificações de aplicativos "Adicionar uma notificação de Windows quando o meu trabalho em segundo plano for concluído"
IA no dispositivo (Phi Silica, reconhecimento de texto) "Adicionar a sumarização local de texto usando as APIs de IA do Windows"
Integração com shell do Windows (folha de partilha, barra de tarefas) "Adicionar um alvo de partilha para que os utilizadores possam partilhar na minha aplicação a partir do Explorer"
Tarefas em segundo plano "Executar uma tarefa em segundo plano a cada hora, mesmo quando a minha aplicação estiver fechada"
Associações de tipos de ficheiro "Registe a minha aplicação para abrir ficheiros .notes"

Passos seguintes