GitHub Copilot Modernization Agent: Como Modernizar Aplicações .NET Legacy Sem Perder a Sanidade
Olá pessoALL,
Durante anos, quando falávamos em modernizar aplicações .NET Framework, a conversa quase sempre terminava no mesmo lugar: "a gente sabe que precisa, mas agora não dá." E olha, eu entendo. Modernização é daqueles projetos que todo mundo sabe que é importante, mas que vive sendo empurrado pra próxima sprint, pro próximo trimestre, pro próximo ano.
Você provavelmente conhece o cenário. A empresa tem 8, 10, 15 aplicações rodando em .NET Framework 4.x. Algumas são de 2015. Outras, ninguém lembra quem escreveu. Todas são críticas pro negócio. E o time que cuida disso? O mesmo time que apaga incêndio em produção, mantém features novas e ainda precisa "modernizar o legado" nos intervalos.
No meu artigo anterior sobre o GitHub Copilot Coding Agent, falei sobre como agentes autônomos estão mudando a equação de produtividade dos times de desenvolvimento. Hoje quero mergulhar num caso de uso específico que me chamou muita atenção: usar o GitHub Copilot pra modernizar aplicações .NET de verdade.
O Problema que Ninguém Quer Encarar
Já perdi a conta de quantos projetos de modernização vi morrer na fase de assessment. O padrão é sempre parecido: alguém cria uma task force, o time técnico passa semanas mapeando dependências, analisando breaking changes entre .NET Framework e .NET 8/9/10, catalogando pacotes NuGet obsoletos, identificando APIs removidas. No final, sai um documento de 50 páginas.
Sabe o que acontece com esse documento? Morre num SharePoint. Ou num Confluence. Ou numa wiki que ninguém abre.
Não é por falta de competência. É por falta de fôlego. Quando você termina o assessment da primeira aplicação, já perdeu a energia (e o budget) pra atacar as outras nove. O time volta pra rotina, as apps legadas continuam rodando, e o ciclo se repete no ano seguinte.
E mesmo quando o assessment sobrevive, a execução é outro bicho. Atualizar de .NET Framework pra .NET 8 ou 10 não é só trocar o target framework no .csproj. São breaking changes em APIs do System.Web, pacotes que não existem mais, dependências de terceiros que nunca foram portadas, configurações de web.config que precisam virar appsettings.json. O volume de trabalho manual é enorme.
A resposta pra esse problema não é contratar mais gente. É mudar a abordagem.
GitHub Copilot Modernization Agent Entra na Conversa
A Microsoft e o GitHub lançaram recentemente o GitHub Copilot modernization agent, um workflow especializado que ajuda times a fazer upgrade de projetos .NET e migrá-los para o Azure. Funciona no Visual Studio, VS Code, GitHub CLI e diretamente no GitHub.com.
Antes de continuar: isso não é o mesmo que o Copilot Coding Agent que descrevi no artigo anterior. Aquele é um agente genérico que recebe issues e produz código. Este aqui é um workflow focado especificamente em modernização, com etapas estruturadas e aprovações humanas em cada passo.
E essa diferença de abordagem é o que me chamou atenção. Diferente de uma ferramenta que simplesmente "tenta converter" seu projeto e te entrega um monte de erros de compilação pra resolver, o Copilot modernization funciona em três passos controlados. Cada passo exige que um humano revise e aprove antes de seguir adiante.
Isso muda tudo? Não. Mas muda o ponto onde o esforço humano é investido. Ao invés de gastar semanas fazendo assessment manual, você gasta minutos revisando o assessment que o agente produziu.
O Workflow: Assessment → Planning → Execution
Vou detalhar cada etapa porque é no fluxo que está o valor real dessa ferramenta.
Passo 1 — Assessment (O Raio-X da Aplicação)
O agente começa examinando a estrutura do seu projeto: dependências, padrões de código, arquivos de configuração, pacotes NuGet. Com base nessa análise, ele gera um arquivo dotnet-upgrade-plan.md dentro da pasta .github/upgrades do seu repositório.
Esse arquivo é o assessment. Concreto, versionado no Git, e revisável pelo time inteiro. Não é um PDF perdido num drive compartilhado. É um Markdown que vive no repositório, junto do código.
Você escolhe a versão de destino (.NET 8, 9 ou 10) e o agente adapta o plano de acordo. Se sua organização padronizou .NET 8 LTS, é isso que ele usa. Se quer ir direto pro .NET 10, também funciona.
Aqui já tem um ganho concreto: o trabalho que levaria dias ou semanas para um time fazer manualmente sai em minutos. E como o resultado é um arquivo Markdown no repositório, qualquer pessoa do time pode revisar, comentar e sugerir ajustes via pull request.
Passo 2 — Planning (O Plano de Ataque)
Depois que você aprova o assessment — e você sempre precisa aprovar antes de seguir — o agente avança pro planejamento detalhado. Aqui ele documenta a estratégia de upgrade: abordagens de refactoring, caminhos de atualização de dependências, e mitigações de risco.
O output é outro documento Markdown. Você lê, edita se quiser, e aprova quando estiver satisfeito.
Até este ponto, nenhuma linha de código do seu projeto foi alterada. O agente investiu todo o esforço em entender e planejar. Você está no controle total.
Confesso que essa abordagem em etapas me ganhou. Já vi ferramentas de migração automática que saem alterando código sem pedir licença e te entregam 300 erros de compilação pra resolver. Aqui, se o plano não faz sentido, você simplesmente não aprova. Volta, ajusta as instruções, e pede pro agente replanejar.
Passo 3 — Execution (Mãos à Obra)
Com o plano aprovado, o agente entra em modo de execução. Ele quebra o plano em tarefas discretas, cada uma com critérios de validação, e começa a fazer as alterações no código.
Cada porção do trabalho gera um commit no Git. Se algo der errado, você sabe exatamente o que mudou e pode fazer rollback cirúrgico. Se o agente encontra um problema durante a execução, ele tenta identificar a causa e aplicar uma correção. O status de cada tarefa é atualizado conforme avança.
Mas vamos ser honestos: o agente performa melhor em projetos que já têm boa cobertura de testes e um pipeline de CI/CD funcionando. Se seu projeto legado não tem testes (e muitos não têm), o agente ainda ajuda no assessment e no planejamento, mas a fase de execução vai precisar de mais supervisão humana. Isso não é limitação do agente. É a realidade de modernizar código sem rede de segurança.
Não Para no .NET — Migração para Azure
Aqui é onde a coisa fica interessante pra quem trabalha com Azure (e se você está lendo este blog, provavelmente trabalha).
O Copilot modernization não se limita a atualizar a versão do .NET. Ele também ajuda a avaliar cloud readiness, recomendar recursos Azure, aplicar boas práticas de migração e preparar o deployment no Azure.
As perguntas que o agente ajuda a responder são exatamente as que ouvimos de clientes aqui na AzureBrasil.cloud: Onde essa aplicação deveria rodar? Que serviços Azure fazem sentido? O que pode migrar agora e o que precisa ficar como está por enquanto?
Os paths de migração que o agente suporta incluem: Managed Identity, Azure SQL, Blob Storage, Azure File Storage, Microsoft Entra ID, Azure Key Vault, Azure Service Bus, Azure Cache for Redis e OpenTelemetry no Azure.
Mas perceba o que está acontecendo aqui: não é só trocar a versão do framework e torcer pra compilar. É pegar uma aplicação que roda on-premises em IIS e prepará-la pra rodar como um App Service com identidade gerenciada, banco gerenciado, secrets no Key Vault e observabilidade moderna. Isso é modernização de verdade.
O Humano Continua no Centro
Se tem uma coisa que aprendi em quase 20 anos fazendo migração e modernização de sistemas, é que as decisões difíceis não são técnicas. São de negócio. Qual aplicação migrar primeiro? Qual risco a empresa aceita durante a transição? Qual é o impacto no time que opera esse sistema hoje?
Nenhum agente vai tomar essas decisões por você. E nem deveria.
O que o Copilot modernization faz é tirar do caminho o trabalho braçal que consome semanas e não requer julgamento humano: inventariar dependências, mapear breaking changes, gerar o plano de upgrade, fazer as alterações mecânicas no código. Isso libera o time pra focar nas decisões que realmente importam — aquelas que dependem de contexto de negócio, de prioridades da empresa e de experiência acumulada.
Na prática, é como ter alguém no time que nunca reclama de fazer assessment, que documenta tudo direitinho, e que está disposto a fazer as refatorações repetitivas enquanto o time sênior foca na arquitetura.
Por Onde Começar
Pegue uma aplicação. Não a mais crítica, não a mais complexa. Escolha uma que seja representativa do seu portfólio, rode o assessment, e revise o plano que o agente gera. Veja se faz sentido. Discuta com o time. Provavelmente vai ter coisas que você discorda ou quer ajustar — e tudo bem, é pra isso que a etapa de aprovação existe.
Quando estiver confortável com o processo, avance pra execução. Depois, repita com a próxima aplicação.
Modernização em escala acontece repo por repo, decisão por decisão. O agente não elimina esse trabalho — ele acelera cada iteração.
O Copilot modernization funciona no Visual Studio, VS Code, GitHub Copilot CLI e no GitHub.com.
Conclusão
Lembra daquelas 10, 15 aplicações .NET Framework que sua empresa sabe que precisa modernizar? Elas não precisam mais esperar. O assessment que levaria semanas sai em minutos. O planejamento que morreria num documento perdido agora vive no repositório, versionado e revisável. E a execução que ninguém tinha tempo de fazer tem um agente pronto pra ajudar.
Repo por repo. Decisão por decisão. Com humanos onde humanos fazem diferença e automação onde automação faz sentido.
Quer começar a usar o GitHub Copilot na sua empresa — seja pra modernização, desenvolvimento ou produtividade do time? Nós da AzureBrasil.cloud somos Microsoft Solutions Partner e ajudamos empresas a adotar o GitHub Copilot de forma estruturada, segura e alinhada com as necessidades do negócio. Entre em contato conosco pra conversar sobre como podemos ajudar.
[]s e até a próxima
Referências
Documentação Oficial
- GitHub Copilot app modernization overview — Visão geral do workflow de modernização com Copilot
Artigos Relacionados
- What AI Agents for Modernization Look Like in Practice — Artigo original da Microsoft Tech Community que inspirou este post
- GitHub Copilot Coding Agent: Como a IA Autônoma Está Transformando a Produtividade de Times de Desenvolvimento — Nosso artigo sobre o Copilot Coding Agent e agentes autônomos
Migração .NET
- Porting from .NET Framework to .NET — Guia oficial de migração de .NET Framework para .NET moderno
- .NET Upgrade Assistant — Ferramenta complementar para upgrade de projetos .NET