.NET

2 out, 2018

Migrando uma aplicação ASP .NET Core 2.0 para ASP .NET Core 2.1

Publicidade

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!