Passer au contenu du pied de page
.NET AIDE

Blazor .NET 8 (Tutoriel Développeur)

Blazor, le framework UI web full-stack, a considérablement évolué avec la sortie de .NET 8.0. Cette mise à jour introduit diverses fonctionnalités et améliorations qui permettent aux développeurs de créer des applications web interactives et modernes utilisant C# et .NET.

Dans cet article, nous nous pencherons sur les aspects clés de Blazor .NET 8.0, en explorant les nouveaux modes de rendu, les modèles de projet, les améliorations des outils, et bien plus.

Blazor .NET 8 (Tutoriel Développeur) : Figure 1

Comprendre les modes de rendu Blazor

Blazor dans .NET 8.0 introduit trois modes de rendu :

  1. Rendu serveur statique : Génère du HTML statique pour des performances optimales.
  2. Rendu serveur interactif : Utilise le runtime serveur ASP.NET Core pour le rendu initial et l'interactivité.
  3. Rendu WebAssembly interactif : Exploite le runtime .NET WebAssembly côté client pour le rendu ultérieur et l'interactivité.

Le rendu automatique interactif polyvalent

L'un des points forts est le mode de rendu automatique interactif, qui combine le rendu côté serveur pour le contenu avec le rendu et l'interactivité ultérieure côté client à l'aide du runtime .NET WebAssembly. Cela se traduit par une expérience de démarrage d'application plus rapide, ce qui en fait une option attrayante pour les développeurs.

Introduction du modèle d'application Web Blazor

.NET 8.0 introduit le modèle d'application Web Blazor, un point de départ unifié qui combine les points forts des modèles d'hébergement Blazor Server et Blazor WebAssembly.

Ce modèle intègre de nouvelles fonctionnalités telles que le rendu serveur statique, le rendu par streaming, une navigation améliorée et la gestion des formulaires. La consolidation des modèles de projet simplifie le processus de développement.

Initialisateurs JS simplifiés pour les applications Web Blazor

Les initialisateurs JS traditionnels ont été remplacés par un nouvel ensemble pour les applications Web Blazor, offrant un meilleur contrôle des tâches telles que la personnalisation du processus de chargement, des niveaux de journalisation et d'autres options. Ce changement améliore l'expérience de développement et aligne sur l'objectif d'unification des modèles d'hébergement dans .NET 8.0.

Séparation de la communication et des conseils d'intégration

Pour fournir une couverture plus ciblée, les conseils sur le pré-rendu et l'intégration ont été scindés en articles distincts. Ce changement vise à simplifier la compréhension et la mise en œuvre, facilitant pour les développeurs le suivi des meilleures pratiques.

Persistance d'état sans effort dans les applications Web Blazor

Les applications Web Blazor persistent désormais automatiquement tout état d'application enregistré créé lors du pré-rendu. Cela élimine la nécessité d'utiliser le Tag Helper Persist Component State, rationalisant le processus de persistance et de lecture de l'état des composants.

Gestion des formulaires et liaison de modèle améliorées

.NET 8.0 apporte des capacités de gestion des formulaires améliorées aux composants Blazor, y compris la liaison de modèle et la validation des données. Le framework respecte les attributs du contrat de données, offrant aux développeurs plus de contrôle sur la façon dont les données de formulaire sont liées au modèle. L'introduction d'un support anti-forgery ajoute une couche de sécurité supplémentaire aux soumissions de formulaire.

Navigation et gestion des formulaires améliorées

Le rendu serveur statique dans Blazor .NET 8.0 introduit une amélioration significative de la navigation sur les pages et de la gestion des formulaires. Traditionnellement, des rafraîchissements complets de la page se produisaient lors de la navigation ou de la soumission d'un formulaire.

Avec la fonctionnalité de navigation améliorée, Blazor intercepte la requête et effectue une requête fetch, intégrant le contenu de la réponse rendue de manière transparente dans le DOM du navigateur. Ceci évite les rafraîchissements complets de la page, ce qui se traduit par des chargements de page plus rapides et plus fluides tout en préservant davantage l'état de la page.

La navigation améliorée est activée par défaut lorsque le script Blazor (blazor.web.js) est chargé, et elle peut être activée en option pour des formulaires spécifiques. La nouvelle API de navigation améliorée permet aux développeurs de rafraîchir la page actuelle de manière programmatique, offrant encore plus de contrôle sur l'expérience utilisateur.

Rendu en Flux

Blazor .NET 8.0 introduit le rendu en flux, une fonctionnalité puissante qui améliore l'expérience utilisateur pour les pages exécutant des tâches asynchrones de longue durée. Avec le rendu en flux, les pages peuvent rendre du contenu de remplacement pendant que les opérations asynchrones sont en cours.

Une fois terminées, le contenu mis à jour est diffusé vers le client sur la même connexion de réponse et intégré de manière transparente dans le DOM. Cette approche garantit que la disposition principale de l'application se rend rapidement et que les mises à jour de la page s'effectuent dès que le contenu devient disponible.

Injection de Services avec Clés

Blazor prend désormais en charge l'injection de services avec clés à l'aide de l'attribut Inject. Les clés permettent le scopage de l'enregistrement et de la consommation de services dans les scénarios d'injection de dépendances.

La nouvelle propriété InjectAttribute.Key permet aux développeurs de spécifier la clé pour le service à injecter, ouvrant de nouvelles possibilités pour le scopage des services.

Accès à HttpContext en tant que Paramètre en Cascade

Blazor .NET 8.0 introduit la capacité d'accéder au HttpContext actuel en tant que paramètre en cascade à partir d'un composant serveur statique. Cette amélioration est particulièrement utile pour inspecter et modifier les en-têtes ou d'autres propriétés liées au contexte HTTP.

Rendu de Composants Razor en dehors d'ASP.NET Core

Blazor .NET 8.0 ouvre la possibilité de rendre les composants Razor en dehors du contexte d'une requête HTTP. Cette flexibilité permet aux développeurs de rendre directement les composants Razor en chaîne ou en flux, indépendamment de l'environnement d'hébergement ASP.NET Core.

Cette fonctionnalité est particulièrement pratique pour les scénarios où la génération de fragments HTML, comme les emails ou le contenu des sites statiques, est nécessaire.

Support des Sections

Dans Blazor .NET 8.0, l'introduction des composants SectionOutlet et SectionContent révolutionne la gestion du contenu. Ces composants permettent aux développeurs de définir des emplacements réservés dans les mises en page, qui sont ensuite remplis par des pages spécifiques.

Les sections peuvent être référencées à l'aide de noms uniques ou d'IDs d'objets, offrant flexibilité et réutilisabilité pour construire des mises en page web dynamiques.

Support des Pages d'Erreur

Les applications Web Blazor dans .NET 8.0 disposent désormais d'un support robuste des pages d'erreur, permettant aux développeurs de définir des pages d'erreurs personnalisées pour une utilisation avec le middleware de gestion d'exceptions ASP.NET Core.

La page d'erreur par défaut (Components/Pages/Error.razor) offre une expérience utilisateur cohérente. Même lorsque l'interactivité est activée, la page d'erreur se rend en tant que composant serveur statique, garantissant la stabilité lors des scénarios d'exception.

QuickGrid de Expérimental à Essentiel

QuickGrid, le composant de grille haute performance, est passé de statut expérimental à devenir une partie intégrante du framework Blazor dans .NET 8.

Ce composant simplifie l'affichage des données tabulaires tout en offrant de puissantes fonctionnalités telles que le tri, le filtrage, la pagination et la virtualisation. Apprenez-en plus sur QuickGrid dans la documentation ASP.NET Core Blazor QuickGrid.

Chemin vers les Éléments Nommés

Blazor .NET 8.0 introduit le support pour le routage côté client pour naviguer directement vers des éléments HTML spécifiques sur une page en utilisant des fragments d'URL standards. En spécifiant un identifiant pour un élément HTML avec l'attribut id standard, Blazor fait défiler en douceur cet élément lorsque le fragment d'URL correspond à l'identifiant de l'élément.

Valeurs en Cascade de Niveau Racine

Blazor .NET 8.0 améliore les valeurs en cascade en introduisant des valeurs en cascade de niveau racine qui peuvent être enregistrées pour l'ensemble de la hiérarchie de composants. Les valeurs en cascade avec noms et les abonnements pour les notifications de mise à jour sont désormais pris en charge, offrant une plus grande flexibilité et contrôle.

Virtualiser le Contenu Vide

Le nouveau paramètre EmptyContent sur le composant Virtualize permet aux développeurs de fournir du contenu lorsque le composant a chargé et que soit l'élément est vide, soit ItemsProviderResult<T>.TotalItemCount est égal à zéro.

Cela permet aux développeurs de créer des interfaces plus intuitives et conviviales.

Gestion des Circuits et Surveillance SignalR

Blazor .NET 8.0 introduit la capacité de fermer les circuits lorsqu'il n'y a plus de composants serveur interactifs restants. Cette optimisation libère des ressources serveur et améliore les performances globales.

De plus, les développeurs peuvent désormais surveiller l'activité des circuits entrants dans les applications côté serveur à l'aide de la méthode CreateInboundActivityHandler sur CircuitHandler.

Performance d'Exécution Améliorée avec le Jiterpreter

Le Jiterpreter, une nouvelle fonctionnalité du runtime dans .NET 8, introduit le support partiel de la compilation Just-in-Time (JIT) lors de l'exécution sur WebAssembly. Cela se traduit par une performance d'exécution améliorée, offrant une expérience plus fluide aux utilisateurs interagissant avec les applications Blazor WebAssembly.

SIMD et Gestion des Exceptions à l'Avance (AOT)

La compilation AOT de Blazor WebAssembly utilise désormais par défaut la SIMD à largeur fixe WebAssembly et la gestion des exceptions WebAssembly. Ce choix stratégique améliore considérablement les performances d'exécution, offrant une expérience utilisateur plus efficace et réactive.

Emballage Webcil pour un Déploiement Compatible Web

Blazor WebAssembly utilise désormais Webcil, un emballage compatible web des assemblées .NET. Cela assure la compatibilité dans les environnements qui bloquent le téléchargement ou l'utilisation de fichiers .dll, en réglant les défis de déploiement. Webcil est activé par défaut pour les applications Blazor WebAssembly.

Améliorations du Débogage de Blazor WebAssembly

Le débogage des applications Blazor WebAssembly a été simplifié dans .NET 8. Le débogueur télécharge désormais les données de symboles depuis les emplacements configurés dans les préférences Visual Studio, améliorant l'expérience de débogage pour les applications utilisant des packages NuGet.

De plus, le débogage est désormais pris en charge dans Firefox, nécessitant une configuration pour le débogage à distance et une connexion via le proxy de débogage .NET WebAssembly.

Compatibilité avec la Politique de Sécurité du Contenu (CSP)

Blazor WebAssembly dans .NET 8.0 élimine le besoin d'activer la source de script unsafe-eval lors de la spécification d'une politique de sécurité du contenu (CSP). Cette amélioration simplifie les configurations de sécurité, facilitant ainsi l'application d'une CSP robuste aux applications Blazor WebAssembly.

Gestion des Exceptions en Dehors du Cycle de Vie du Composant

L'introduction de ComponentBase.DispatchExceptionAsync permet aux développeurs de traiter les exceptions lancées en dehors de la pile d'appels du cycle de vie d'un composant Razor.

Cette fonctionnalité permet au code du composant de traiter les exceptions comme si elles étaient des exceptions de méthode du cycle de vie, garantissant un mécanisme de gestion des erreurs plus cohérent et contrôlé.

Introduction de Iron Suite

Iron Suite par Iron Software, développé par Iron Software, se compose de plusieurs bibliothèques utiles, permettant aux développeurs de créer des applications Blazor puissantes. Il fournit des solutions pour ajouter des fonctionnalités PDF, des fonctionnalités de fichier Excel ou CSV, la reconnaissance d'image en texte, la génération et la lecture de code-barres et de codes QR, ainsi que la possibilité de compresser ou extraire des fichiers.

Iron Suite est le choix idéal à considérer pour le développement web utilisant le modèle d'hébergement Blazor WebAssembly ou toute technologie Microsoft, y compris l'application Blazor WebAssembly, l'application serveur Blazor, l'application MVC ASP.NET Core, les API WEB ASP.NET Core, ou toute application construite dans le runtime .NET, quelle que soit la version.

Bibliothèques de Iron Suite

  1. IronPDF pour créer, manipuler et extraire des données des fichiers PDF sans effort.

    La fonction phare d'IronPDF est la conversion de HTML en PDF, avec une pleine préservation de la disposition et du style. Parfait pour générer des PDFs à partir de contenu web, y compris des rapports, factures et documentation. Vous pouvez convertir des fichiers HTML, des URL ou des chaînes HTML en fichiers PDF.

    using IronPdf;
    
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();
    
            // 1. Convert HTML String to PDF
            var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
            var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
            pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
    
            // 2. Convert HTML File to PDF
            var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
            var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
    
            // 3. Convert URL to PDF
            var url = "http://ironpdf.com"; // Specify the URL
            var pdfFromUrl = renderer.RenderUrlAsPdf(url);
            pdfFromUrl.SaveAs("URLToPDF.pdf");
        }
    }
    using IronPdf;
    
    class Program
    {
        static void Main(string[] args)
        {
            var renderer = new ChromePdfRenderer();
    
            // 1. Convert HTML String to PDF
            var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
            var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
            pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
    
            // 2. Convert HTML File to PDF
            var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
            var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
            pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
    
            // 3. Convert URL to PDF
            var url = "http://ironpdf.com"; // Specify the URL
            var pdfFromUrl = renderer.RenderUrlAsPdf(url);
            pdfFromUrl.SaveAs("URLToPDF.pdf");
        }
    }
    Imports IronPdf
    
    Friend Class Program
    	Shared Sub Main(ByVal args() As String)
    		Dim renderer = New ChromePdfRenderer()
    
    		' 1. Convert HTML String to PDF
    		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
    		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
    		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
    
    		' 2. Convert HTML File to PDF
    		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
    		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
    		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
    
    		' 3. Convert URL to PDF
    		Dim url = "http://ironpdf.com" ' Specify the URL
    		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
    		pdfFromUrl.SaveAs("URLToPDF.pdf")
    	End Sub
    End Class
    $vbLabelText   $csharpLabel
  2. IronOCR (Reconnaissance Optique de Caractères) pour extraire du texte d'images scannées ou de PDFs, améliorant l'accessibilité des données.
  3. IronXL pour lire, écrire, et manipuler les tableurs Excel avec efficacité.
  4. IronBarcode pour générer et lire des codes-barres dans divers formats, facilitant l'encodage et la récupération de données.
  5. IronQR pour créer et lire des codes QR en utilisant l'apprentissage automatique
  6. IronWebScraper pour extraire des données précieuses des sites web, améliorant les capacités des applications basées sur le web.
  7. IronZIP pour compresser et décompresser des fichiers, rationalisant les processus de stockage et de transfert de données.

Blazor .NET 8 (Tutoriel Développeur) : Figure 2

Qu'est-ce qui Distingue Iron Suite

  1. Accédez à l'ensemble de la suite au prix de seulement deux produits individuels, maximisant la valeur de votre investissement.
  2. Que vous travailliez sur Windows, macOS ou Linux, Iron Suite assure la compatibilité sur (presque) toutes les plateformes.
  3. Profitez d'un parcours rapide depuis le téléchargement jusqu'à la production, avec la possibilité d'être opérationnel en seulement 5 minutes.
  4. Accédez à une documentation détaillée et des exemples pour toutes les fonctionnalités, fournissant clarté et orientation tout au long du processus de développement.
  5. Une équipe dédiée d'ingénieurs est disponible 24/5 pour vous assister avec toutes questions, garantissant une expérience de développement fluide.
  6. Iron Suite est livré avec une politique de remboursement de 30 jours, sans poser de questions, offrant confiance et tranquillité d'esprit.

Conclusion

En conclusion, la sortie de Blazor .NET 8.0 marque une étape importante dans l'évolution du développement full-stack d'UI web avec C# et .NET.

L'introduction de nouveaux modes de rendu, du modèle d'application Web Blazor, de la navigation améliorée, et de nombreuses autres fonctionnalités en font un choix attrayant pour les développeurs visant à créer des applications web modernes et interactives.

Blazor .NET 8.0 introduit également des fonctionnalités convaincantes telles que la gestion des formulaires améliorée, le rendu en streaming, et la capacité d'injecter des services avec clés, ajoutant profondeur et flexibilité au développement.

L'introduction d'Iron Suite par Iron Software complète les capacités de Blazor, offrant une boîte à outils complète pour les tâches liées aux documents dans l'écosystème .NET.

Blazor .NET 8.0 permet aux développeurs de créer des applications web robustes et riches en fonctionnalités en utilisant Iron Suite.

La combinaison de fonctionnalités puissantes, d'une performance améliorée, et du support d'une communauté de développeurs dynamique positionne Blazor comme un choix logique pour le développement web moderne.

Questions Fréquemment Posées

Comment puis-je convertir du HTML en PDF dans une application Blazor ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf de IronPDF dans une application Blazor pour convertir des chaînes HTML en PDF. Cette méthode est compatible avec les modèles Blazor Server et Blazor WebAssembly.

Quels sont les nouveaux modes de rendu dans Blazor .NET 8.0 ?

Blazor .NET 8.0 introduit trois nouveaux modes de rendu : Rendu serveur statique, Rendu serveur interactif et Rendu WebAssembly interactif, chacun conçu pour optimiser les performances et l'interactivité.

Comment Iron Suite améliore-t-il les applications Blazor ?

Iron Suite améliore les applications Blazor en offrant des fonctionnalités telles que la gestion des PDF, la reconnaissance de caractères, la manipulation d'Excel et la génération de codes-barres, qui sont essentielles pour le développement d'applications web robustes.

Qu'est-ce que le mode de rendu interactif automatique dans Blazor .NET 8.0 ?

Le mode de rendu interactif automatique dans Blazor .NET 8.0 combine le rendu côté serveur avec l'interactivité côté client, tirant parti de l'environnement d'exécution WebAssembly de .NET pour un démarrage d'application plus rapide.

Comment puis-je améliorer la gestion des formulaires dans Blazor .NET 8.0 ?

Blazor .NET 8.0 améliore la gestion des formulaires avec une liaison de modèle améliorée, une validation des données et un support anti-usurpation, donnant aux développeurs plus de contrôle sur la gestion des données de formulaire.

Quel est l'objectif du rendu en streaming dans Blazor .NET 8.0 ?

Le rendu en streaming dans Blazor .NET 8.0 permet le rendu initial du contenu de remplacement pendant que les tâches asynchrones de longue durée se terminent, ce qui améliore l'expérience utilisateur en mettant la page à jour sans heurts.

Comment le modèle d'application web Blazor simplifie-t-il le développement ?

Le modèle d'application web Blazor dans .NET 8.0 unifie les modèles Blazor Server et Blazor WebAssembly, simplifiant le processus de développement avec une navigation et une gestion des formulaires améliorées.

Comment la boîte à outils de Iron Software complète-t-elle Blazor .NET 8.0 ?

La boîte à outils de Iron Software complète Blazor .NET 8.0 en fournissant des fonctionnalités complètes liées aux documents, améliorant la capacité du framework à gérer des tâches de traitement de documents complexes.

Quels sont les avantages d'utiliser IronPDF dans une application web Blazor ?

IronPDF offre de puissantes capacités de génération et de manipulation de PDF, ce qui en fait un choix idéal pour les développeurs construisant des applications web Blazor nécessitant de solides fonctionnalités de traitement de documents.

Quelles améliorations ont été apportées au débogage dans Blazor .NET 8.0 ?

Blazor .NET 8.0 améliore le débogage pour les applications WebAssembly avec des téléchargements de données de symboles améliorés et un support ajouté pour Firefox, ce qui simplifie le processus de débogage.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite