Recentemente foi disponibilizado oficialmente o Preview 1 do .NET Core 2.1 e do ASP.NET Core 2.1. Maiores informações a respeito podem ser encontradas nos blogs oficiais da Microsoft:
Com este novo artigo dou início a uma série cobrindo as novidades do ASP.NET Core 2.1. Este primeiro traz informações sobre a instalação do Preview 1 do .NET Core 2.1, bem como do suporte a HTTPS presente nesta versão mais recente do ASP.NET Core.
E como o assunto deste artigo é ASP.NET Core, deixo aqui um convite.
Dia 15/03/2018 (quinta-feira) às 21h30 – horário de Brasília – teremos mais um hangout no Canal .NET. O assunto desta vez será o deployment de aplicações ASP.NET Core no Azure utilizando para isto o VSTS (Visual Studio Team Services). A transmissão acontecerá via YouTube em um link a ser disponibilizado em breve. Para efetuar a sua inscrição acesse a página do evento no Facebook ou então o Meetup.
Instalando o Preview 1 do .NET Core 2.1
A instalação do Preview 1 do .NET Core 2.1 pode ser obtida através do seguinte link:
Na próxima imagem está a tela inicial do instalador:
Ao executar o comando dotnet –version, após a instalação será exibida a versão 2.1.300-preview1:
Para os testes realizados neste artigo foi necessário instalar também o Preview 7 da versão 15.6 do Visual Studio 2017:
A imagem a seguir mostra que este Preview do Visual Studio já suporta o ASP.NET Core 2.1:
Suporte a HTTPS
A adoção do protocolo HTTPS em aplicações tem se tornado uma prática cada vez mais frequente dentro do desenvolvimento Web. Considerando toda a preocupação atual com a segurança das informações, browsers como Firefox e Chrome estão inclusive preparados para a exibição de alertas durante o acesso a sites considerados como desprotegidos.
Em projetos criados com o ASP.NET Core 2.1 temos agora o uso de HTTPS ativado por default. A instalação do SDK do .NET Core 2.1 prevê, inclusive, a criação de um certificado para desenvolvimento, conforme indicado na próxima imagem (referente à geração de um primeiro projeto do tipo Web API e baseado neste novo release):
Ao executar a aplicação com o comando dotnet run aparecerá uma indicação de uso das portas 5000 e 5001 para o processamento de solicitações HTTP:
- Haverá um redirecionamento automático da porta 5000 (que não emprega HTTPS) para a 5001;
- Foi habilitada na porta 5001 a utilização de HTTPS.
Um alerta será exibido ao efetuar um primeiro teste de acesso à esta API via Firefox:
A adição de uma exceção para o endereço https://localhost:5001 permitirá então o envio de solicitações às diferentes Actions desta aplicação de testes:
E com tudo isso, certamente muitos devem estar se perguntando: o que mudou em termos de código?
Analisando a classe Startup é possível observar:
- Uma chamada ao método UseHttpsRedirection em Configure, a fim de ativar o middleware de redirecionamento;
- Já a invocação do método UseHsts acionará em ambiente de produção no middleware que habilita o uso do protocolo HSTS (HTTP Strict Transport Security). Esta especificação indica que uma aplicação poderá ser acessada apenas via HTTPS.
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; namespace ExemploAPI { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHsts(); } app.UseHttpsRedirection(); app.UseMvc(); } } }
Por fim, temos na imagem a seguir um exemplo de aplicação MVC executando a partir do Visual Studio 2017 e com o protocolo HTTPS ativado:
Detalhes adicionais sobre a utilização de HTTPS com o ASP.NET Core 2.1 podem ser encontrados no seguinte artigo: