Para iniciar o processo de migração das suas aplicações Full Framework para Azure AKS e .NET Core, primeiro vou testar a ferramenta Azure Migrate. Esta ferramenta ajudará a identificar os impedimentos que sua aplicação pode ter para rodar em algum tipo de computação do Azure, como AKS ou App Services, por exemplo.
O uso do Azure Migrate permitirá uma análise detalhada das dependências e compatibilidades, facilitando a transição e garantindo que todas as funcionalidades da aplicação sejam mantidas ou melhoradas no novo ambiente. Além disso, a ferramenta fornecerá recomendações específicas para otimizar a migração e minimizar possíveis interrupções durante o processo.
Em seguida, vamos utilizar a ferramenta .NET Upgrade Assistant. Esta ferramenta nos ajudará na migração do código da versão Full Framework para o .NET Core 8.0, tornando a aplicação compatível com sistemas operacionais Linux, o que é ideal para aplicações containerizadas.
Criando e Abrindo um projeto 4.7.2
Vou criar o projeto no Visual Studio 2015, usando a versão FULL Framework .NET 4.7 escolhi o template de uma aplicação ASP.NET Web Application. Este é um projeto pequeno, desses que já nascem prontos, vai servir bem para testar as ferramentas de migração.
Depois de criado o projeto, e é importante habilitar essa versão .NET Core no Visual Studio 2022, pois precisaremos abrir o projeto nessa IDE para usar as extensões. Caso você tenha algum projeto pronto em uma versão mais antiga do dotnet então basta usá-lo
A documentação pende a instalando dessa extensão no visual studio Azure Migrate application and code assessment — Visual Studio Marketplace depois disso podemos abri o projeto pelo Visual Studio 2022 e já e vamos encontrar a opção re-plataform to Azure clicando com botão direito no projeto ou na solution.
Se escolhermos clicar na solution o item re-plataform to Azure disponibilizara a opção new report
Então vamos escolher para qual o tipo de computação a aplicação vai ser migrada
E como escolhemos a solution, agora vamos selecionar os projetos que queremos analisar
Um relatório com as issues será apresentado
entramos na issue e podemos ver a opção de perguntar para o copilot
Resposta do copilot para um issue especifica
E é isso basta ir resolvendo as issues, com essa ferramenta você pode verificar o código-fonte, configurações e binários da sua aplicação para encontrar oportunidades de migração para o Azure. Ele vai ajudar a identificar problemas ao mover sua aplicação para o Azure e melhora o desempenho, escalabilidade e segurança, sugerindo soluções modernas e nativas da nuvem.
NET Upgrade Assistant
Agora vamos pensar na migração do código, antigamente eu utilizava um cara chamado Portability Analyzer O .NET Portability Analyzer — .NET — .NET | Microsoft Learn, mas ele foi descontinuado e no lugar agora temos o Assistente de Atualização do .NET
Vou escolher um projeto por vez, clicando com o botão direito sobre o projeto e selecionando a opção 'update'. Esse método, em vez de gerar um relatório com as issues, tenta uma conversão direta de código. Na maioria das vezes, ele apenas faz o retarget, mas mesmo assim ajuda
No caso de um projeto WEB, a melhor opção é criar um novo projeto, pois ele vai criar uma espécie de proxy para permitir a migração paralela dos controllers
Selecionar o framework para 8
O assistente vai criar o projeto .net core, mas apenas uma casca, sem ter migrado ó código de fato
A partir disso, precisamos voltar ao projeto original onde começamos a migração e clicar novamente em 'update' usando o botão direito sobre esse projeto. Então, será possível migrar controller por controller. Cada controller migrada leva consigo suas dependência
Escolher a solution
Também podemos escolher a solution que contém vários projetos. Nesse caso, vou clicar na solution e não no projeto. Veja que agora, em vez de converter, ele me dá a opção de criar um relatório.
e então ele analisa projeto por projeto e gera as issues para serem corrigidas
aqui também consegui pedir ajuda do copilot paras as issues, e assim fica muito mais prático do que o Portability Analyzer
O Assistente de Atualização do .NET ajuda a atualizar projetos para versões mais recentes do .NET e analisa seu código para detectar e corrigir possíveis incompatibilidades. Um foco da ferramenta é ajudar a migrar um projeto do .NET Framework, .NET Core ou .NET para a versão mais recente do .NET. Você usa a extensão ou a ferramenta para atualizar projetos inteiros do .NET ou algum aspecto do projeto, como a migração de um arquivo de configuração de um tipo mais antigo para um tipo mais recente.
Podemos utilizar a CLI
upgrade-assistant --help
para iniciar o assistente use o comando
upgrade-assistant upgrade
Script para fazer vários projetos
upgrade-assistant upgrade# Defina o diretório raiz $rootDir = "..." $destDir = "..." # Obtenha todos os arquivos .csproj no diretório raiz e subdiretórios $csprojFiles = Get-ChildItem -Path $rootDir -Recurse -Filter *.csproj # Execute o comando upgrade-assistant para cada arquivo .csproj foreach ($file in $csprojFiles) { Write-Host "Executando upgrade-assistant para $($file.FullName)" Start-Process -FilePath "upgrade-assistant" -ArgumentList "upgrade $($file.FullName) --operation Inplace --targetFramework net8.0 --destination ${destDir} " -Wait }