Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Important
Antes de começar: este artigo pressupõe que você leu a visão geral da migração do ASP.NET Core. Se você ainda não leu, comece por entender os conceitos, a abordagem e os benefícios da migração incremental.
Para uma migração grande, recomendamos configurar um aplicativo ASP.NET Core que faça proxy para o aplicativo .NET Framework original. O novo aplicativo habilitado para proxy é mostrado na imagem a seguir:
Este artigo fornece as etapas práticas para prosseguir com uma migração incremental depois de entender a abordagem.
Prerequisites
Antes de iniciar a migração incremental, certifique-se de:
- Leia a visão geral: migração incremental de ASP.NET para ASP.NET Core
- Um aplicativo ASP.NET Framework funcional que você deseja migrar
- Visual Studio 2022 com as atualizações mais recentes
- SDK do .NET 8 ou posterior instalado
- Compreensão das dependências do seu aplicativo e bibliotecas de terceiros
Visão geral das etapas de migração
O processo de migração incremental segue estas etapas principais:
- Configurar ASP.NET projeto principal
- Remediar Dívida Técnica
- Identificar e abordar preocupações transversais
- Atualizar bibliotecas de suporte
Configurar projeto ASP.NET Core
O primeiro passo é criar o novo aplicativo ASP.NET Core que servirá como seu proxy.
O que você vai fazer:
- Crie um novo projeto ASP.NET Core junto com seu aplicativo ASP.NET Framework existente
- Configure-o para solicitações de proxy para seu aplicativo original usando YARP (Yet Another Reverse Proxy)
- Configurar a infraestrutura básica para migração incremental
Instruções detalhadas:
- Consulte Configuração remota do aplicativo para entender como configurar um aplicativo para migração incremental.
- Veja Como atualizar de ASP.NET MVC, API Web e Web Forms para ASP.NET Core para obter ajuda na configuração dos projetos necessários para migração incremental usando as ferramentas do Visual Studio.
Remediar Dívida Técnica
Quando fazer esta etapa: Antes de atualizar qualquer biblioteca de suporte, resolva a dívida técnica que pode complicar o processo de migração.
Antes de começar a atualizar suas bibliotecas de suporte, é importante limpar a dívida técnica que pode interferir no processo de migração. Esta etapa deve ser concluída primeiro para garantir uma experiência de atualização mais suave.
Atualizar dependências do pacote
Revise e atualize seus pacotes NuGet para as versões compatíveis mais recentes:
-
Auditar pacotes existentes: use o Gerenciador de Pacotes NuGet do Visual Studio, pois a
dotnetCLI não funciona para aplicativos do ASP.NET Framework - Atualizar pacotes incrementalmente: atualize os pacotes um de cada vez para evitar problemas de compatibilidade
- Teste após cada atualização: verifique se seu aplicativo ainda funciona corretamente após cada atualização de pacote
- Abordar alterações disruptivas: algumas atualizações de pacotes podem introduzir alterações significativas que precisam ser resolvidas
Modernize as ferramentas de construção
Atualize suas ferramentas de compilação e configuração do projeto:
- Ferramentas de atualização: verifique se você está usando uma versão recente do MSBuild/Visual Studio
-
Migrar para PackageReference para dependências: considere migrar do formato
packages.configpara o formatoPackageReferencese ainda não o fez no projeto de aplicação Web - Limpar referências não utilizadas: remova quaisquer referências de assembly ou pacotes NuGet não utilizados
- Migrar para arquivos de projeto no estilo SDK: converta seus arquivos de projeto existentes para o formato moderno no estilo SDK. Isso é essencial para a compatibilidade com projetos .NET modernos e fornece melhor suporte a ferramentas
- Atualizar scripts de compilação: revise e atualize quaisquer scripts de compilação personalizados ou configurações de CI/CD
Resolver problemas de qualidade de código
Corrija problemas conhecidos de qualidade de código que podem complicar a migração:
- Corrigir avisos do compilador: Solucione todos os avisos do compilador, especialmente aqueles relacionados a APIs preteridas
- Remover código morto: limpe classes, métodos e outros elementos de código não utilizados
- Atualizar o uso de APIs preteridas: substitua o uso de APIs preteridas por seus equivalentes modernos, sempre que possível
Esse trabalho de preparação tornará o processo de atualização da biblioteca muito mais suave e reduzirá a probabilidade de encontrar problemas complexos durante a migração.
Identificar e abordar preocupações transversais
Quando fazer esta etapa: Ao remediar a dívida técnica, mas antes de atualizar as bibliotecas de suporte, identifique e configure preocupações transversais que afetam todo o seu aplicativo.
As preocupações transversais são aspetos do seu aplicativo que abrangem várias camadas ou componentes, como autenticação, gerenciamento de sessão, registro em log e cache. Eles precisam ser resolvidos no início do processo de migração, pois afetam a forma como seus aplicativos ASP.NET Framework e ASP.NET Core se comunicam e compartilham o estado durante a migração incremental.
As secções seguintes abrangem as preocupações transversais mais comuns. Configure apenas os que se aplicam ao seu aplicativo:
Configuração de Suporte de Sessão
Configure isso se: Seu aplicativo ASP.NET Framework usa o estado da sessão.
Consulte a documentação de migração da sessão geral para obter orientação aqui.
Session é um recurso comumente usado do ASP.NET que compartilha o nome com um recurso no ASP.NET Core, mas as APIs são muito diferentes. Ao atualizar bibliotecas que usam o estado da sessão, você precisará configurar o suporte à sessão. Consulte a documentação sobre suporte de sessão remota para obter orientações detalhadas sobre como habilitar o compartilhamento de estado de sessão entre seus aplicativos.
Configuração de autenticação
Configure isso se: Seu aplicativo ASP.NET Framework usa autenticação e você deseja compartilhar o estado de autenticação entre os aplicativos antigos e novos.
Consulte a documentação geral de migração de autenticação para obter orientação aqui.
É possível compartilhar a autenticação entre o aplicativo ASP.NET original e o novo aplicativo ASP.NET Core usando o recurso de autenticação remota de adaptadores System.Web. Esse recurso permite que o aplicativo ASP.NET Core adie a autenticação para o aplicativo ASP.NET original. Consulte a documentação sobre autenticação remota para obter mais detalhes.
Outras preocupações transversais a considerar
Dependendo do seu pedido, poderá também ter de abordar:
- Logging: garanta um logging consistente em ambas as aplicações. Considere usar um provedor de log compartilhado ou garantir que os logs sejam agregados corretamente.
- Cache: se seu aplicativo usa cache (cache na memória, distribuído ou de saída), planeje como manter a consistência do cache entre os aplicativos.
- Tratamento de erros: estabeleça tratamento de erros e relatórios consistentes nos aplicativos ASP.NET Framework e ASP.NET Core.
- Gerenciamento de configuração: planeje como as definições de configuração serão compartilhadas ou gerenciadas entre os dois aplicativos.
- Monitoramento de integridade: configure o monitoramento e as verificações de integridade para ambos os aplicativos durante o processo de migração.
- Injeção de dependência: se estiver usando um contêiner DI em seu aplicativo ASP.NET Framework, planeje a migração para o contêiner DI interno do ASP.NET Core.
Atualizar bibliotecas de suporte
Quando fazer esta etapa: Somente quando você precisar migrar rotas específicas que dependem de bibliotecas de classes contendo lógica de negócios, você precisará compartilhar entre os aplicativos antigos e novos.
Note
Abordagem incremental: com o processo de migração incremental, você não precisa atualizar todas as bibliotecas de suporte de uma só vez. Você só precisa atualizar as bibliotecas necessárias para as rotas específicas que você está migrando no momento. Isso permite que você enfrente a migração em peças menores e mais gerenciáveis.
Processo de atualização da biblioteca
Important
As bibliotecas de suporte devem ser atualizadas em uma ordem de pesquisa de profundidade pós-encomenda. Isto significa:
- Comece com dependências de folhas: Comece com bibliotecas que não têm dependências de outras bibliotecas na sua solução
- Trabalhar para cima através da árvore de dependência: atualize uma biblioteca somente depois que todas as suas dependências tiverem sido atualizadas com êxito
- Terminar com a aplicação principal: A aplicação principal do ASP.NET Framework deve ser o último item a ser modificado
Esta encomenda é essencial porque:
- Ele garante que, quando você atualiza uma biblioteca, todas as suas dependências já são compatíveis
- Ele evita problemas de dependência circular durante o processo de atualização
- Ele permite que você teste cada biblioteca de forma independente antes de mudar para seus dependentes
NOTA: Você só precisa seguir esta ordem para o subconjunto de bibliotecas exigido pelas rotas que você está migrando no momento, não toda a sua solução.
Processo de atualização para cada biblioteca:
Se você tiver bibliotecas de suporte em sua solução que precisará usar para as rotas que está migrando, elas deverão ser atualizadas para o .NET Standard 2.0, se possível. A modernização da aplicação GitHub Copilot pode ajudar-te com isto. Se as bibliotecas não puderem direcionar o .NET Standard, você poderá direcionar o .NET 8 ou posterior junto com o destino do .NET Framework no projeto original ou em um novo projeto ao lado do original.
Os adaptadores System.Web podem ser usados nessas bibliotecas para suportar o uso de HttpContext em bibliotecas de classes. Para habilitar o uso do HttpContext numa biblioteca:
- Remover referência a
System.Webno arquivo de projeto - Adicionar o pacote
Microsoft.AspNetCore.SystemWebAdapters - Habilite o multi-alvo e adicione um alvo .NET 8 ou posterior, ou converta o projeto para .NET Standard 2.0.
Esta etapa pode exigir que vários projetos sejam alterados, dependendo da estrutura da solução e das rotas que você está migrando. A modernização de aplicações GitHub Copilot pode ajudá-lo a identificar quais precisam de ser alteradas e a automatizar vários passos do processo.
Próximas Etapas
Depois de concluir as etapas de configuração e atualização da biblioteca acima:
- Comece pequeno: comece migrando pontos de extremidade simples e sem estado primeiro
- Teste minuciosamente: verifique se cada componente migrado funciona corretamente em ambos os ambientes
- Monitore o desempenho: observe quaisquer impactos no desempenho da configuração do proxy
- Iterar: continue migrando componentes incrementalmente até que a migração seja concluída