Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
GitHub Copilot realiza a modernização usando uma abordagem estruturada para atualizar e migrar projetos .NET. Entender como o agente funciona, incluindo seus cenários, habilidades, tarefas e fluxo de trabalho, ajuda você a colaborar com o agente com eficiência e obter os melhores resultados.
Dica
Pense no agente como um colega qualificado que entende .NET profundamente, segue um plano estruturado e se adapta aos seus comentários. Quanto mais contexto você fornecer, melhor o agente desempenhará.
O agente como um companheiro de equipe
O agente se destaca na colaboração, não na automação em um vácuo:
- Deep .NET knowledge: O agente entende arquivos de projeto, dependências do NuGet, alterações interruptivas e padrões de migração em dezenas de tecnologias de .NET para projetos C# e Visual Basic.
- Fluxo de trabalho estruturado: Cada atualização passa por avaliação, planejamento e execução. Sem alterações aleatórias, sem surpresas.
-
Aprende suas preferências: Quando você diz "sempre use tipos explícitos em vez de
var", o agente grava essa preferênciascenario-instructions.mde lembra-a entre sessões. - Corrigível no meio do voo: Tomou uma decisão errada? Diga ao agente. Ele se adapta e aplica a correção daqui para frente.
- Explica seu raciocínio: Pergunte "por que você escolheu essa abordagem?" e o agente orienta você através da decisão.
Cenários
Um cenário é um fluxo de trabalho de modernização gerenciado de ponta a ponta. Quando você diz ao agente para "atualizar minha solução para .NET 10", você está disparando o cenário .NET version upgrade.
Como os cenários são descobertos
Você não precisa memorizar nomes de cenário. O agente descobre cenários relevantes automaticamente:
- Analisa sua base de código para entender quais tecnologias você está usando, incluindo linguagem, versão da estrutura, bibliotecas e tipos de projeto.
- Identifica quais cenários são relevantes para seus projetos.
- Classifica cenários por importância e peso. Os mais relevantes aparecem primeiro.
Você também pode perguntar diretamente: "Quais cenários estão disponíveis para minha solução?"
Persistência de cenário
Cada cenário ativo obtém sua própria pasta em .github/upgrades/{scenarioId}/. A pasta de cenário contém o plano, o progresso da tarefa, suas preferências e os logs de execução. A pasta faz parte do repositório Git.
Para obter 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 de três estágios.
Estágio 1: Avaliação
O agente reúne tudo o que precisa antes de iniciar o trabalho:
- Estrutura de destino: A versão para a qual você está atualizando.
- Estratégia do Git: O agente sugere a criação de branches e você controla os detalhes: nome do branch, se deseja usar branches por tarefa e momento da confirmação.
- Modo de fluxo: Automático (o agente controla) ou Guiado (você aprova cada estágio).
- Parâmetros específicos do cenário: Dependendo do cenário, o agente pode fazer mais perguntas.
O agente inicializa o ambiente de cenário em .github/upgrades/{scenarioId}/.
Em seguida, o agente analisa sua base de código:
- Grafo de dependências do projeto (ordem topológica)
- Compatibilidade do pacote NuGet com a estrutura de destino
- Alterações de API disruptivas
- Cobertura de teste
- Fatores de complexidade e risco
O agente salva um relatório de avaliação abrangente para assessment.md.
Com base na avaliação, o agente avalia sua solução e identifica quais decisões de atualização são relevantes. Ele apresenta padrões sensatos e permite que você examine e substitua qualquer opção.
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: regravação no local ou lado a lado para aplicativos web; no local ou multidirecionamento para bibliotecas.
- Modernização da tecnologia: Opções para migração, injeção de dependência, registro em log e configuração do Entity Framework.
- Gerenciamento de pacotes: Se e quando adotar o Gerenciamento Central de Pacotes.
- Tratamento de compatibilidade: Como lidar com APIs e pacotes sem suporte.
O agente salva decisões confirmadas em upgrade-options.md.
No modo Guiado, o agente pausa aqui para sua revisão antes de continuar.
Estágio 2: Planejamento
O agente cria o plano de tarefas com base na avaliação e nas opções confirmadas. O planejamento produz três arquivos de chave:
-
plan.md: o plano de atualização com descrições de estratégia e tarefa. -
scenario-instructions.md: suas preferências, decisões e a memória do agente. -
tasks.md— A lista ordenada de tarefas que o agente executará.
Estágio 3: Execução
O agente executa tarefas sequencialmente. Para cada tarefa em tasks.md, o agente segue um ciclo: iniciar, executar, validar (compilar e testar) e concluir. Você controla quando e como o agente confirma alterações: por tarefa, por grupo de tarefas ou no final. À medida que o agente funciona, ele atualiza tasks.md com indicadores de status em tempo real para que você possa acompanhar o progresso.
Atualizar Estratégias
Durante o estágio de avaliação, o agente avalia sua solução e recomenda uma destas estratégias:
| Estratégia | Mais adequado para | Como funciona |
|---|---|---|
| De baixo para cima | Soluções grandes com grafos de dependência profunda | Comece com projetos iniciais (sem dependências), avance para projetos superiores. |
| De cima para baixo | Comentários rápidos sobre o aplicativo principal | Comece com o projeto de aplicativo, corrija as dependências conforme necessário. |
| Tudo de uma vez | Soluções pequenas e simples | Atualize tudo de uma vez. |
Dica
O agente somente apresenta decisões que são relevantes para o seu projeto. Um aplicativo de console simples não vê opções de estrutura da Web e um projeto sem o Entity Framework não vê opções de migração de banco de dados.
Habilidades
As habilidades são recursos de modernização menores e direcionados. Quando o agente encontra o código EF6 durante uma atualização, ele carrega a habilidade de migração de EF6 para EF-Core com instruções detalhadas passo a passo. Invoque uma habilidade diretamente durante uma atualização: "migre os serviços do WCF em meu projeto para o CoreWCF".
O agente vem com mais de 30 habilidades integradas organizadas por domínio:
- Acesso a dados: EF6 para EF Core (code-first e EDMX), LINQ to SQL e migração do SqlClient
- Web/ASP.NET: Identity, Global.asax, OWIN, roteamento/filtros/agrupamento MVC e WCF para CoreWCF
- Serialização: Newtonsoft.Json para System.Text.Json
- Cloud: Azure Functions em processo para o modelo de trabalho isolado
- Bibliotecas: ADAL para MSAL, SignalR, SDK do PowerShell e muito mais
As habilidades são carregadas automaticamente com base no que o agente detecta em sua base de código. Você não precisa gerenciar o carregamento de habilidades. Apenas descreva o que você precisa.
Para obter a lista completa, consulte Cenários e referência de habilidades.
Tasks
As tarefas são as unidades atômicas de trabalho em um cenário. Cada tarefa representa uma parte específica e limitada da atualização, como "Atualizar CommonLib de .NET 6 para .NET 10" ou "Migrar o uso do EF6 no DataLayer para o EF Core".
Ciclo de vida da tarefa
As tarefas passam por esses estados:
- Disponível: Pronto para começar, todas as dependências atendidas.
- Em andamento: O agente está trabalhando ativamente na tarefa.
- Concluído: Alterações de código aplicadas, build concluído com sucesso, testes concluídos com sucesso.
Para cada tarefa, o agente:
- Carrega habilidades pertinentes e contexto relacionado.
- Avalia a complexidade e decide se a tarefa precisa de subtarefas.
- Grava um resumo de escopo em
tasks/{taskId}/task.md. - Executa alterações de código.
- Valida ao executar a construção e os testes.
- Registra resultados em
tasks/{taskId}/progress-details.md. - Confirma alterações e passa para a próxima tarefa.
Gerenciamento de estado
O agente mantém o estado de operação contínua, permitindo que você possa parar e retomar a qualquer momento. Tudo está em seu repositório em .github/upgrades/{scenarioId}/.
| Arquivo | Propósito |
|---|---|
scenario-instructions.md |
Suas preferências, decisões e instruções personalizadas. A memória persistente do agente. |
upgrade-options.md |
Decisões de atualização confirmadas |
plan.md |
O plano de atualização com descrições de estratégia e tarefa |
tasks.md |
Painel de progresso visual mostrando o status da tarefa |
execution-log.md |
Log detalhado de todas as alterações e decisões |
tasks/{taskId}/task.md |
Escopo e contexto por tarefa |
tasks/{taskId}/progress-details.md |
Resultados e notas de execução por tarefa |
Resumabilidade
Feche o chat, feche o IDE ou volte no dia seguinte. O agente continua de onde parou:
- Na sua próxima interação, o agente verifica automaticamente o estado atual do espaço de trabalho.
- O agente detecta o cenário existente e mostra o progresso atual, como "3 de 8 tarefas concluídas".
- O agente detecta tarefas inativas (interrompidas de uma sessão anterior) e oferece retomar ou reiniciar essas tarefas.
- O agente recarrega suas preferências de
scenario-instructions.md.
Continuidade entre diferentes IDEs
Como o estado reside no Git, você pode alternar entre o VS Code, Visual Studio e Copilot CLI no meio da atualização. A .github/upgrades/ pasta é o estado compartilhado que ambos os IDEs entendem.
Dica
Envie a pasta para o branch .github/upgrades/. Faça push do branch para um repositório remoto para que os membros da equipe possam ver o progresso ou continuar a atualização em outro computador.
Modos de fluxo
O agente dá suporte a dois modos de fluxo que controlam a quantidade de supervisão que você tem: modo automático e modo guiado.
Modo automático
O agente trabalha em todas as fases (avaliação, planejamento e execução) sem pausar para aprovação. Ele apresenta as principais descobertas e atualizações de progresso, mas continua avançando.
Melhor para usuários experientes, atualizações simples e pequenas soluções.
Modo guiado
O agente pausa em cada limite de estágio para sua revisão:
- Após a avaliação: "Aqui está o que encontrei. Devo continuar com as opções de atualização?"
- Após o planejamento: "Aqui está o plano de tarefas. Você quer que eu comece a execução?
- Antes de dividir tarefas complexas: "Essa tarefa é complexa. Aqui está como eu a dividiria."
Melhor para usuários iniciantes, soluções complexas e quando você deseja aprender o processo.
Alternar modos a qualquer momento
- Diga "pausar" ou "alternar para guiado" para alternar para o modo Guiado.
- Diga "continuar" ou "vá em frente" para alternar para o modo Automático.
Dica
Comece com o modo Guiado para sua primeira atualização para entender o fluxo de trabalho e, em seguida, alterne para Automático quando estiver confortável.