Nouveautés d’ASP.NET Core 3.1

Cet article met en évidence les modifications les plus importantes dans ASP.NET Core 3.1 et fournit des liens vers la documentation appropriée.

Prise en charge des classes partielles pour les composants Razor

Les composants Razor sont désormais générés en tant que classes partielles. Le code d’un composant Razor peut être écrit à l’aide d’un fichier code-behind défini comme une classe partielle plutôt que de définir tout le code du composant dans un seul fichier. Pour plus d’informations, consultez Prise en charge des classes partielles.

Tag Helper de composant et passage de paramètres aux composants de niveau supérieur

Dans Blazor avec ASP.NET Core 3.0, les composants étaient rendus dans les pages et les vues à l’aide d’un assistant HTML (Html.RenderComponentAsync). Dans ASP.NET Core 3.1, rendez un composant à partir d’une page ou d’une vue avec le nouveau Tag Helper de composant :

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

L’assistant HTML reste pris en charge dans ASP.NET Core 3.1, mais le Tag Helper de composant est recommandé.

Les applications Blazor Server peuvent désormais passer des paramètres aux composants de niveau supérieur pendant le rendu initial. Auparavant, vous pouviez uniquement passer des paramètres à un composant de niveau supérieur avec RenderMode.Static. Avec cette version, RenderMode.Server et RenderMode.ServerPrerendered sont pris en charge. Toutes les valeurs de paramètre spécifiées sont sérialisées au format JSON et incluses dans la réponse initiale.

Par exemple, effectuez le prérendu d’un composant Counter avec un incrément (IncrementAmount) :

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

Pour plus d’informations, consultez Intégrer des composants dans Razor Pages et les applications MVC.

Prise en charge des files d’attente partagées dans HTTP.sys

HTTP.sys prend en charge la création de files d’attente de requêtes anonymes. Dans ASP.NET Core 3.1, nous avons ajouté la possibilité de créer ou d’attacher à une file d’attente de requêtes existante nommée HTTP.sys. La création ou l’attachement à une file d’attente de requêtes nommée HTTP.sys permet de créer des scénarios où le processus de contrôleur HTTP.sys propriétaire de la file d’attente est indépendant du processus de l’écouteur. Cette indépendance permet de conserver les connexions existantes et les requêtes mises en file d’attente entre les redémarrages du processus de l’écouteur :

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

Changements cassants pour les cookies SameSite

Le comportement des cookies SameSite a changé pour refléter les changements à venir du navigateur. Cela peut affecter les scénarios d’authentification comme AzureAd, OpenIdConnect ou WsFederation. Pour plus d’informations, consultez Utiliser des cookie SameSite dans ASP.NET Core.

Empêcher les actions par défaut pour les événements dans les applications Blazor

Utilisez l’attribut de directive @on{EVENT}:preventDefault pour empêcher l’action par défaut d’un événement. Dans l’exemple suivant, l’action par défaut d’affichage du caractère de la clé dans la zone de texte est empêchée :

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

Pour plus d’informations, consultez Empêcher les actions par défaut.

Arrêter la propagation d’événements dans les applications Blazor

Utilisez l’attribut de directive @on{EVENT}:stopPropagation pour arrêter la propagation d’événements. Dans l’exemple suivant, la case à cocher empêche les événements de clic du <div> enfant de se propager au <div> parent :

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

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

@code {
    private bool _stopPropagation = false;
}

Pour plus d’informations, consultez Arrêter la propagation d’événements.

Erreurs détaillées pendant le développement d’applications Blazor

Lorsqu’une application Blazor ne fonctionne pas correctement pendant le développement, la réception d’informations détaillées sur les erreurs de l’application aide à diagnostiquer et résoudre le problème. Lorsqu’une erreur se produit, les applications Blazor affichent une barre dorée en bas de l’écran :

  • Pendant le développement, la barre dorée vous dirige vers la console du navigateur, où vous pouvez voir l’exception.
  • En production, la barre dorée avertit l’utilisateur qu’une erreur s’est produite et recommande d’actualiser le navigateur.

Pour plus d’informations, consultez Gérer les erreurs dans les applications ASP.NET CoreBlazor.