Standard Logic App Setup using Terraform
April 28, 2025Migrating Storage to Azure
April 29, 2025Criando 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
Depois de ter o projeto que vamos migrar, precisei instar o dotnet-appcat conforme essa doc Azure Migrate application and code assessment for .NET — Azure Migrate | Microsoft Learn
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 }
Referência
- Azure Migrate application and code assessment for .NET — Azure Migrate | Microsoft Learn
- Baixar .NET Framework | Downloads oficiais gratuitos
- O .NET Portability Analyzer — .NET — .NET | Microsoft Learn
- .NET Upgrade Assistant Overview — .NET Core | Microsoft Learn
- .NET Upgrade Assistant — Visual Studio Marketplace
- Azure Migrate application and code assessment — Visual Studio Marketplace
- Migração dotnet core 2.2 para 3.1 | by Wilson Santos | Medium