Novidades do ASP.NET Core 3.1

Esse artigo destaca as alterações mais significativas no ASP.NET Core 3.1, com links para a documentação relevante.

Suporte de classe parcial para componentes Razor

Os componentes Razor agora são gerados como classes parciais. O código para um componente Razor pode ser escrito usando um arquivo code-behind definido como uma classe parcial em vez de definir todo o código para o componente em um único arquivo. Para obter mais informações, consulte Suporte de classes parciais.

Auxiliar de marcação de componente e aprovação de parâmetros para componentes de nível superior

Em Blazor com o ASP.NET Core 3.0, os componentes foram renderizados em páginas e exibições usando um auxiliar HTML (Html.RenderComponentAsync). No ASP.NET Core 3.1, renderize um componente de uma página ou exibição com o novo auxiliar de marcação de componente:

<component type="typeof(Counter)" render-mode="ServerPrerendered" />

O auxiliar HTML permanece com suporte no ASP.NET Core 3.1, mas o auxiliar de marcação de componente é recomendado.

Os aplicativos Blazor Server agora podem aprovar parâmetros para componentes de nível superior durante a renderização inicial. Anteriormente, você só podia aprovar parâmetros para um componente de nível superior com RenderMode.Static. Com esta versão, há suporte para RenderMode.Server e RenderMode.ServerPrerendered. Todos os valores de parâmetro especificados são serializados como JSON e incluídos na resposta inicial.

Por exemplo, pré-renderize um componente Counter com uma quantidade de incremento (IncrementAmount):

<component type="typeof(Counter)" render-mode="ServerPrerendered" 
    param-IncrementAmount="10" />

Para obter mais informações, consulte Integrar componentes nos aplicativos Páginas do Razor e MVC.

Suporte para filas compartilhadas no HTTP.sys

HTTP.sys dá suporte à criação de filas de solicitação anônimas. No ASP.NET Core 3.1, adicionamos a capacidade de criar ou anexar a uma fila de solicitação de HTTP.sys nomeada existente. Criar ou anexar a uma fila de solicitação de HTTP.sys nomeada existente permite cenários em que o processo do controlador de HTTP.sys que possui a fila é independente do processo do ouvinte. Essa independência possibilita preservar conexões existentes e solicitações enfileiradas entre reinicializações do processo do ouvinte:

public static IHostBuilder CreateHostBuilder(string[] args) =>
     Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            // ...
            webBuilder.UseHttpSys(options =>
            {
                options.RequestQueueName = "MyExistingQueue";
                options.RequestQueueMode = RequestQueueMode.CreateOrAttach;
            });
        });

Alterações interruptivas para SameSite cookies

O comportamento do SameSite cookies foi alterado para refletir as próximas alterações no navegador. Isso pode afetar cenários de autenticação como AzureAd, OpenIdConnect ou WsFederation. Para obter mais informações, confira Trabalhar com SameSite cookies no ASP.NET Core.

Impedir ações padrão para eventos em aplicativos Blazor

Use o atributo de diretiva @on{EVENT}:preventDefault para impedir a ação padrão de um evento. No exemplo a seguir, a ação padrão de exibir o caractere da chave na caixa de texto é impedida:

<input value="@_count" @onkeypress="KeyHandler" @onkeypress:preventDefault />

Para obter mais informações, consulte Impedir ações padrão.

Interromper a propagação de eventos em aplicativos Blazor

Use o atributo de diretiva @on{EVENT}:stopPropagation para interromper a propagação de eventos. No exemplo a seguir, marcar a caixa de seleção impede que eventos de clique do filho <div> se propaguem para o pai <div>:

<input @bind="_stopPropagation" type="checkbox" />

<div @onclick="OnSelectParentDiv">
    <div @onclick="OnSelectChildDiv" @onclick:stopPropagation="_stopPropagation">
        ...
    </div>
</div>

@code {
    private bool _stopPropagation = false;
}

Para obter mais informações, consulte Parar propagação de eventos.

Erros detalhados durante o desenvolvimento do aplicativo Blazor

Quando um aplicativo Blazor não está funcionando corretamente durante o desenvolvimento, receber informações detalhadas de erro do aplicativo ajuda na solução de problemas e na correção do problema. Quando ocorre um erro, os aplicativos Blazor exibem uma barra dourada na parte inferior da tela:

  • Durante o desenvolvimento, a barra dourada o direciona para o console do navegador, onde a exceção pode ser vista.
  • Na produção, a barra dourada notifica o usuário de que ocorreu um erro e recomenda a atualização do navegador.

Para obter mais informações, confira Resolver erros nos aplicativos do BlazorASP.NET Core.