Novos recursos do ASP.NET Core 2.1

No final do mês de maio deste ano, o .NET Core foi atualizado para a versão 2.1, e com ela, novos recursos foram adicionados na aplicação padrão do ASP.NET MVC. Para conhecê-los, vamos criar uma aplicação para esta versão.

C# (C Sharp) - Introdução ao ASP.NET Core
Curso de C# (C Sharp) - Introdução ao ASP.NET Core
CONHEÇA O CURSO

Criando a aplicação

Crie a aplicação com o comando abaixo:

dotnet new mvc -n AspNetCore2_1Exemplo -au Individual

Ao executar o projeto, a primeira coisa que notará é que ele carregará duas URLs:

Uma HTTP e outra HTTPS. Seguindo as recomendações de que toda aplicação deve implementar SSL, no ASP.NET Core 2.1, o template padrão já adiciona o suporte a este protocolo na aplicação. Assim, ao acessá-la, sempre seremos redirecionados para a versão HTTPS:

Outro recurso adicionado no template padrão desta versão é a exibição da mensagem indicando o uso de cookie:

Isso é algo que segue a recomendação do GDPR.

Você pode adicionar este recurso em um projeto configurando o uso do middleware CookiePolicyMiddleware, que pode ser feito, adicionando a linha abaixo na configuração da sua aplicação:

app.UseCookiePolicy();

Para ela sempre sempre redirecionada para a versão HTTPS, adicione a linha abaixo:

app.UseHttpsRedirection();

Quanto à mensagem do uso de cookies, você pode alterá-la no arquivo Views/Shared/_CookieConsentPartial.cshtml:

@using Microsoft.AspNetCore.Http.Features

@{
    var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
    var showBanner = !consentFeature?.CanTrack ?? false;
    var cookieString = consentFeature?.CreateConsentCookie();
}

@if (showBanner)
{
    <nav id="cookieConsent" class="navbar navbar-default navbar-fixed-top" role="alert">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#cookieConsent .navbar-collapse">
                    <span class="sr-only">Toggle cookie consent banner</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <span class="navbar-brand"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span></span>
            </div>
            <div class="collapse navbar-collapse">
                <p class="navbar-text">
                    Use this space to summarize your privacy and cookie use policy.
                </p>
                <div class="navbar-right">
                    <a asp-controller="Home" asp-action="Privacy" class="btn btn-info navbar-btn">Learn More</a>
                    <button type="button" class="btn btn-default navbar-btn" data-cookie-string="@cookieString">Accept</button>
                </div>
            </div>
        </div>
    </nav>
    <script>
        (function () {
            document.querySelector("#cookieConsent button[data-cookie-string]").addEventListener("click", function (el) {
                document.cookie = el.target.dataset.cookieString;
                document.querySelector("#cookieConsent").classList.add("hidden");
            }, false);
        })();
    </script>
}

Por fim, ao registrar um usuário e acessar a página de gerenciamento da conta, é possível ver o link da opção para exportar os dados e excluir a conta:

Isso também foi implementado devido às regras do GDPR. Também por causa dessas regras, é criada uma página onde deve ser adicionado a política de privacidade da aplicação:

Ela não aparece no menu, mas se encontra no caminho: Home/Privacy

Conclusão

O ASP.Net Core 2.1 adiciona uma série de recursos que facilitam a adequação da aplicação às mais novas regras da internet, reduzindo a necessidade de codificação e preocupação com estes detalhes, deixando o programador focado apenas com a lógica de negócio do projeto.

C# (C Sharp) - Introdução ao ASP.NET Core
Curso de C# (C Sharp) - Introdução ao ASP.NET Core
CONHEÇA O CURSO
Deixe seu comentário

Instrutor, nerd, cinéfilo e desenvolvedor nas horas vagas. Graduado em Ciências da Computação pela Universidade Metodista de São Paulo.