Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A modernização do GitHub Copilot utiliza uma abordagem estruturada para atualizar e migrar projetos .NET. Compreender como o agente trabalha, incluindo os seus cenários, competências, tarefas e fluxo de trabalho, ajuda-o a colaborar eficazmente com ele e a obter os melhores resultados.
Sugestão
Pense no agente como um colega experiente que compreende profundamente o .NET, segue um plano estruturado e se adapta ao seu feedback. Quanto mais contexto deres, melhor será o desempenho do agente.
O agente como colega de equipa
O agente destaca-se pela colaboração, não pela automação isolada:
- Conhecimento profundo de .NET: O agente compreende ficheiros de projeto, dependências do NuGet, alterações significativas e padrões de migração em dezenas de tecnologias .NET tanto para projetos C# como Visual Basic.
- Fluxo de trabalho estruturado: Cada atualização passa por avaliação, planeamento e execução. Sem alterações aleatórias, sem surpresas.
-
Aprende as tuas preferências: Quando dizes "usar sempre tipos explícitos em vez de
var", o agente escreve essa preferência escenario-instructions.mdlembra-a entre sessões. - Corrigível a meio do voo: Tomaste uma decisão errada? Diz ao agente. Adapta-se e aplica a correção daqui para a frente.
- Explica o seu raciocínio: Pergunte "por que escolheu essa abordagem?" e o agente guia-o na decisão.
Cenários
Um cenário é um fluxo de trabalho de modernização gerido de ponta a ponta. Quando dizes ao agente "atualiza a minha solução para .NET 10", estás a desencadear o cenário .NET version upgrade.
Como os cenários são descobertos
Não precisas de memorizar nomes de cenários. O agente descobre automaticamente cenários relevantes:
- Analisa a sua base de código para perceber que tecnologias está a usar, incluindo linguagem, versão do framework, bibliotecas e tipos de projeto.
- Identifica quais os cenários relevantes para os seus projetos.
- Classifica os cenários por importância e peso. Os mais relevantes surgem primeiro.
Também pode perguntar diretamente: "Que cenários estão disponíveis para a minha solução?"
Persistência de cenários
Cada cenário ativo tem a sua própria pasta em .github/upgrades/{scenarioId}/. A pasta de cenários contém o plano, progresso da tarefa, as suas preferências e registos de execução. A pasta faz parte do teu repositório Git.
Para uma lista completa de cenários, consulte Cenários e referência de habilidades.
O ciclo de vida do fluxo de trabalho
Cada cenário segue o mesmo ciclo de vida: um fluxo de trabalho em três etapas.
Fase 1: Avaliação
O agente reúne tudo o que precisa antes de começar a trabalhar:
- Estrutura de alvo: A versão para a qual estás a atualizar.
- Estratégia Git: O agente sugere a ramificação e você controla os detalhes: nome do ramo, uso por tarefa das ramificações e o momento dos commits.
- Modo de fluxo: Automático (o agente conduz) ou Guiado (aprova cada etapa).
- Parâmetros específicos do cenário: Dependendo do cenário, o agente pode fazer mais perguntas.
O agente inicializa o espaço de trabalho do cenário em .github/upgrades/{scenarioId}/.
O agente analisa então a sua base de código:
- Grafo de dependências de projeto (ordem topológica)
- Compatibilidade de pacotes NuGet com o framework de destino
- Alterações disruptivas na API
- Cobertura de testes
- Complexidade e fatores de risco
O agente guarda um relatório de avaliação exaustivo para assessment.md.
Com base na avaliação, o agente avalia a sua solução e identifica quais as decisões de atualização relevantes. Apresenta padrões sensatos e permite-lhe rever e anular qualquer escolha.
As opções podem incluir:
- Estratégia de atualização: De baixo para cima, de cima para baixo ou tudo de uma vez.
- Abordagem de migração do projeto: Reescrita no próprio local ou paralelamente para aplicações web; no próprio local ou multialvo para bibliotecas.
- Modernização tecnológica: Escolhas para migração do Entity Framework, injeção de dependências, registo e configuração.
- Gestão de pacotes: Se e quando adotar a Gestão Central de Pacotes.
- Gestão de compatibilidade: Como resolver APIs e pacotes não suportados.
O agente guarda as decisões confirmadas para upgrade-options.md.
No modo Guiado, o agente pausa aqui para a sua revisão antes de prosseguir.
Fase 2: Planeamento
O agente cria o plano de tarefa com base na avaliação e nas opções confirmadas. O planeamento produz três ficheiros principais:
-
plan.md: O plano de atualização com estratégia e descrições de tarefas. -
scenario-instructions.md: As tuas preferências, decisões e a memória do agente. -
tasks.md— A lista ordenada de tarefas que o agente irá executar.
Fase 3: Execução
O agente trabalha as tarefas sequencialmente. Para cada tarefa em tasks.md, o agente segue um ciclo: iniciar, executar, validar (construir e testar) e concluir. Controla quando e como o agente faz commit de alterações: por tarefa, por grupo de tarefas ou no final. À medida que o agente trabalha, atualiza tasks.md com indicadores de estado ao vivo para que você possa acompanhar o progresso.
Estratégias de melhoria
Durante a fase de avaliação, o agente avalia a sua solução e recomenda uma destas estratégias:
| Estratégia | Melhor para | Como funciona |
|---|---|---|
| De baixo para cima | Soluções grandes com grafos de dependência profundos | Começa com projetos de folha (sem dependências), vai subindo. |
| De cima para baixo | Feedback rápido sobre a aplicação principal | Começa pelo projeto da aplicação, corrige dependências conforme necessário. |
| Tudo de uma vez | Soluções pequenas e simples | Atualiza tudo de uma só vez. |
Sugestão
O agente apenas mostra decisões relevantes para o seu projeto. Uma simples aplicação de consola não vê opções de web framework, e um projeto sem Entity Framework não vê opções de migração de base de dados.
Competências
As competências são capacidades de modernização mais pequenas e direcionadas. Quando o agente encontra código EF6 durante uma atualização, carrega a funcionalidade EF6 para EF-Core com instruções detalhadas de migração passo a passo. Invocar uma competência diretamente durante uma atualização: "migrar os serviços WCF do meu projeto para o CoreWCF."
O agente vem com 30+ competências incorporadas organizadas por domínio:
- Acesso aos dados: EF6 para EF Core (code-first e EDMX), LINQ para SQL e migração para SqlClient
- Web/ASP.NET: Identidade, Global.asax, OWIN, roteamento/filtros/agrupamento MVC e WCF para CoreWCF
- Serialização: Newtonsoft.Json para System.Text.Json
- Cloud: Funções do Azure em processo para modelo de trabalhador isolado
- Bibliotecas: ADAL para MSAL, SignalR, PowerShell SDK e mais
Competências carregam automaticamente com base no que o agente deteta na tua base de código. Não precisas de gerir a carga de competências. Basta descrever o que precisa.
Para a lista completa, consulte Cenários e referência de competências.
Tasks
As tarefas são as unidades atómicas de trabalho dentro de um cenário. Cada tarefa representa uma parte específica e limitada da atualização, como "Atualizar o CommonLib de .NET 6 para .NET 10" ou "Migrar o uso de EF6 em DataLayer para EF Core."
Ciclo de vida da tarefa
As tarefas passam pelos seguintes estados:
- Disponível: Pronto para começar, todas as dependências cumpridas.
- Em Progresso: O agente está a trabalhar ativamente na tarefa.
- Concluído: Alterações de código aplicadas, compilação bem-sucedida, testes bem-sucedidos.
Para cada tarefa, o agente:
- Carrega competências e contexto relacionados.
- Avalia a complexidade e decide se a tarefa necessita de subtarefas.
- Escreve um resumo do escopo para o
tasks/{taskId}/task.md. - Executa alterações de código.
- Valida ao executar compilações e testes.
- Regista os resultados em
tasks/{taskId}/progress-details.md. - Regista alterações e passa para a tarefa seguinte.
Gestão do Estado
O agente mantém o estado persistente para que possa parar e retomar a qualquer momento. Tudo está no teu repositório sob .github/upgrades/{scenarioId}/.
| Ficheiro | Purpose |
|---|---|
scenario-instructions.md |
As suas preferências, decisões e instruções personalizadas. A memória persistente do agente. |
upgrade-options.md |
Decisões confirmadas de atualização |
plan.md |
O plano de melhoria com estratégia e descrições de tarefas |
tasks.md |
Painel visual de progresso que mostra o estado da tarefa |
execution-log.md |
Registo detalhado de todas as alterações e decisões |
tasks/{taskId}/task.md |
Âmbito e contexto por tarefa |
tasks/{taskId}/progress-details.md |
Notas e resultados de execução por tarefa |
Retomabilidade
Fecha o chat, fecha o teu IDE ou volta no dia seguinte. O agente retoma de onde ficou:
- Na sua próxima interação, o agente verifica automaticamente o estado atual do seu espaço de trabalho.
- O agente deteta o cenário existente e mostra o progresso atual, como "3 de 8 tarefas concluídas."
- O agente deteta tarefas estagnadas (bloqueadas por uma sessão interrompida anterior) e oferece retomar ou reiniciar essas tarefas.
- O agente recarrega as tuas preferências a partir de
scenario-instructions.md.
Continuidade entre diferentes IDEs
Como o estado está no Git, podes alternar entre VS Code, Visual Studio e Copilot CLI a meio da atualização. A .github/upgrades/ pasta é o estado partilhado que ambos os IDEs compreendem.
Sugestão
Adiciona a .github/upgrades/ pasta à tua ramificação. Empurrem o ramo para um repositório remoto para permitir que os membros da equipa vejam o progresso ou continuem a atualização noutra máquina.
Modos de fluxo
O agente suporta dois modos de fluxo que controlam o grau de supervisão que tem: modo automático e modo guiado.
Modo automático
O agente trabalha em todas as fases (avaliação, planeamento e execução) sem parar para aprovação. Revela descobertas importantes e atualizações de progresso, mas continua a avançar.
Ideal para utilizadores experientes, atualizações simples e pequenas soluções.
Modo guiado
O agente faz uma pausa em cada limite de fase para a sua análise:
- Após a avaliação: "Aqui está o que encontrei. Devo avançar com as opções de upgrade?"
- Depois de planear: "Aqui está o plano da tarefa. Queres que comece a execução?"
- Antes de descomposições complexas de tarefas: "Esta tarefa é complexa. Aqui está como eu dividiria isso."
Ideal para utilizadores iniciantes, soluções complexas e quando queres aprender o processo.
Muda de modo a qualquer momento
- Diz "pausa" ou "mudar para guiado" para mudar para o modo Guiado.
- Diz "continuar" ou "avançar" para mudar para o modo Automático.
Sugestão
Começa com o modo Guiado para a tua primeira atualização para perceberes o fluxo de trabalho, depois muda para Automático quando te sentires confortável.
Conteúdo relacionado
- O que é a modernização do GitHub Copilot?
- Cenários e referências de competências
- Atualize uma aplicação .NET com a modernização pelo GitHub Copilot
- Melhores práticas
- Resolução de problemas na modernização do GitHub Copilot