Neste artigo veremos como migrar uma aplicação ASP .NET Core 2.0 para ASP .NET Core 2.1.
A versão da ASP.NET Core 2.1 já está disponível e vem com novos recursos como HTTPS por padrão, HTTPClientFactory, SignalR e outros. Veja aqui.
Para obter informações completas e detalhadas sobre o assunto, consulte a documentação oficial em:
A seguir vou apresentar um roteiro básico para migrar aplicações ASP .NET Core 2.0 para a nova versão.
1 – Atualizar o framework para .NET Core 2.1
- Clique com o botão direito do mouse sobre o projeto e a seguir clique em Properties
- Clique na tab Application e em Target Framework selecione .NET Core 2.1
Também podemos editar o arquivo de projeto .csproj clicando com o botão direito do mouse sobre o projeto, e a seguir clicando em Edit <nome_projeto>.csproj.
Feito isso, altere <TargetFramework> para <TargetFramework>netcoreapp2.1</TargetFramework>.
2- Atualizar as referências aos pacotes
A ASP.NET Core 2.1 apresenta um novo meta-pacote chamado Microsoft.AspNetCore.App em substituição à referência Microsoft.AspNetCore.All.
Abaixo vemos o arquivo de projeto do projeto ASP .NET Core 2.0 usando a referência de pacote Microsoft.AspNetCore.All:
Precisamos atualizar as versões para os pacotes Microsoft.AspNetCore, Microsoft.Extensions e Microsoft.EntityFrameworkCore para a versão 2.1.0.
Além disso, temos que atualizar as versões dos elementos <DotNetCliToolReference> para qualquer pacote Microsoft.VisualStudio e/ou Microsoft.EntityFrameworkCore para a versão 2.1.0.
Abaixo vemos o arquivo do projeto alterado para ASP .NET Core 2.1:
3 – Remover referências aos elementos <DotNetCliToolReference> para os pacotes
Os pacotes a seguir agora são agrupados por padrão na CLI do .NET Core e não precisam ser instalados separadamente:
- Microsoft.DotNet.Watcher.Tools (dotnet watch)
- Entityframeworkcore (dotnet ef)
- Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)
- Secretmanager (dotnet user-secrets)
Você também pode – opcionalmente – remover o elemento <DotNetCliToolReference> para o pacote Microsoft.VisualStudio.Web.CodeGeneration.Tools.
Nota: Se desejar, você pode substituir essa ferramenta por uma versão instalada globalmente executando o comando: dotnet tool install -g dotnet-aspnet-codegenerator.
Abaixo vemos o arquivo de projeto com o elemento <DotNetCliToolReference> já removido:
Como o meu projeto usava o BrowserLink, tive que incluir o pacote Microsoft.VisualStudio.Web.BrowserLink no projeto.
Nota: Podemos também simplesmente remover a linha que chama BrowserLink.
Esses são os ajustes básicos mais importantes, mas dependendo do tipo da sua aplicação e dos pacotes que você está utilizando, talvez seja necessário realizar outras atualizações.
4 – Alterando o arquivo Program.cs
Abaixo vemos o código do arquivo Program.cs da aplicação ASP .NET Core 2.0:
Na ASP .NET Core 2.1, o comando BuildWebHost foi alterado para CreateWebHostBuilder (a alteração não é obrigatória, pois o código anterior ainda funciona).
Abaixo vemos o código atualizado para a versão 2.1:
A interface IWebHostBuilder foi adicionada para dar suporte a uma nova infraestrutura de teste de integração.
5 – Habilitando o HTTPS
Para ativar o HTTPS, precisamos adicionar dois middlewares ao método Configure.
Abra a classe Startup.cs e navegue até o método Configure.
Inclua uma chamada para incluir o middleware HSTS após o middleware do manipulador de exceções:
- app.UseHsts();
A seguir adicione uma chamada para adicionar o middleware de redirecionamento HTTPS antes do middleware de arquivos estáticos:
- app.UseHttpsRedirection();
O protocolo HSTS força os clientes (navegadores da web) a interagir com o servidor por meio de conexões HTTPS.
O protocolo HSTS é normalmente usado em cenários de não desenvolvimento, portanto, o middleware UseHsTs() é adicionado na outra parte do código.
Após esses ajustes, precisamos ativar o SSL para o projeto.
Para fazer isso, clique com o botão direito do mouse no projeto e, em seguida, em Properties.
Depois clique na tab Debug e marque a caixa de seleção “Enable SSL” e salve as alterações.
Feito isso, adicione uma variável de ambiente chamada ASPNETCORE_HTTPS_PORT e defina seu valor para o número da porta exibido na URL na caixa de seleção “Enable SSL“.
Calma que ainda não terminou! Abra o arquivo launchSettings.json localizado em Properties.
No arquivo launchSettings.json, adicione uma nova propriedade “sslPort” na seção “iisSettings”/”iisExpress”.
O valor será o número da porta SSL configurado para a variável de ambiente ASPNETCORE_HTTPS_PORT.
Pronto! Agora essas configurações serão lidas pelo middleware de redirecionamento HTTPS para garantir que as solicitações não HTTPS sejam redirecionadas para a porta correta.
Existem outras alterações como no código de autenticação que agora pode ser usado como uma biblioteca de classes Razor (RCL).
Até o próximo artigo!