Passer au contenu du pied de page
.NET AIDE

Razor vs Blazor

Razor et Blazor sont deux des frameworks d'interface utilisateur web les plus populaires pour créer des applications web dans l'environnement de développement Visual Studio. Cet article de blog examinera les similitudes et les différences entre ces deux technologies .NET basées sur leur syntaxe, leurs interactions, leurs avantages et leurs inconvénients. Il démontrera également quelques cas d'utilisation avec quelques exemples de code.


Qu'est-ce que Razor et Blazor dans ASP.NET Core ?

Razor

Razor est un langage de balisage côté serveur qui permet aux développeurs de créer des pages web de manière dynamique en utilisant le HTML et le code côté serveur .NET intégré. Razor génère des pages web à partir de Razor Pages, des fichiers de modèle de page web écrits en C# ou VB. Les pages Razor écrites en code VB utilisent l'extension de fichier .vbhtml, et les pages Razor écrites en code C# utilisent l'extension de fichier .cshtml.

Les applications web modernes ASP.NET prennent en charge Razor, et il peut être utilisé de préférence au balisage ASP.NET traditionnel pour générer des composants de vue d'application.

Blazor

Blazor est un framework d'application web qui permet aux développeurs de créer des interfaces interactives côté client en utilisant des langages de programmation .NET. Les applications web créées avec Blazor sont des applications monopage (SPA) qui s'exécutent à l'intérieur d'un client de navigateur web (et non sur un serveur web). L'exécution des applications côté navigateur est rendue possible grâce à WebAssembly, une bibliothèque de jeu d'instructions multiplateforme présente dans tous les navigateurs web modernes capables d'exécuter du code source .NET.

Avec Blazor, les développeurs peuvent créer des composants web côté client réutilisables et interactifs avec C#, HTML et CSS (sans avoir besoin d'incorporer JavaScript). De plus, comme ces composants sont écrits en C#, les développeurs ont la flexibilité de déplacer les détails d'implémentation entre le client et le serveur comme code source et bibliothèques si nécessaire.

Blazor utilise-t-il les composants Razor ?

Blazor prend entièrement en charge la syntaxe Razor. Vous pouvez créer des applications Blazor en utilisant l'ensemble des fonctionnalités de balisage complet de Razor : utilisez des boucles, des conditions, etc. Considérez l'exemple suivant.

@page "/HelloWorld"

<h1>
   Example Component
</h1>

@foreach (var person in People)
{
    <h2>@person.FirstName</h2>
}

Ce composant Razor utilise une boucle foreach pour itérer sur une collection appelée People, affichant le prénom de chaque personne à l'intérieur des balises <h2>.

Connexion entre Razor et Blazor

On peut voir clairement qu'il y a une relation entre Blazor et Razor. Après tout, le nom de Blazor lui-même est une combinaison des mots "browser" et "razor".

Razor et Blazor sont tous deux utilisés pour créer des applications web en utilisant HTML et C#. Puisqu'ils sont open-source et gratuits, les développeurs peuvent les utiliser immédiatement et sans restriction. Lors du développement d'applications web ASP.NET, nous utilisons la syntaxe Razor parce qu'elle est plus similaire à ASP.NET Core et ASP.NET MVC.

Blazor crée des interfaces utilisateur flexibles et interactives à partir d'un ou plusieurs composants écrits avec la syntaxe Razor.

C'est à ce moment-là que nous devons faire une distinction significative avec la façon dont Razor est utilisé dans Blazor : il est utilisé pour créer des composants (boutons, éléments de page, etc.), et non pour créer des pages entières.

De plus, les fichiers Razor (fichiers avec l'extension .cshtml) dans Blazor sont officiellement connus sous le nom de composants Razor, et non de composants Blazor (bien que les deux mots soient utilisés de manière interchangeable dans de nombreux cercles de développement).

Fonctionnement des Razor Pages et Blazor Server

Razor fonctionne dans les applications MVC pour servir des pages entières au navigateur.

class="content-img-align-center"> Razor vs Blazor, Figure 1: Razor Pages en action

class="content__image-caption">Razor Pages en action

Lorsqu'un utilisateur clique sur un bouton ou un lien, le navigateur envoie une demande au serveur, qui accède à la base de données, récupère les vues Razor .cshtml (ou la Razor Page), combine les données et le balisage ensemble, et renvoie le tout au navigateur (réaffichant toute la page).

Blazor, d'autre part, vous permet de créer une page web entière en utilisant une série de composants plus petits écrits dans la syntaxe Razor.

class="content-img-align-center"> Razor vs Blazor, Figure 2: Blazor en action

class="content__image-caption">Blazor en action

Cela illustre le fonctionnement de Blazor WebAssembly (Blazor WASM).

Le premier appel à votre application Blazor WASM retourne le programme complet, y compris tous les composants que vous avez définis, un peu comme une application monopage créée en utilisant JavaScript.

Maintenant que le navigateur a accès à ces éléments, il peut les afficher, les cacher et les mettre à jour en réponse aux informations et événements.

De cette manière, les applications Blazor sont plus similaires aux applications que vous développeriez en utilisant une bibliothèque/framework JavaScript "contemporain" tel que Vue ou Angular. Les applications Blazor effectuent des appels réseau vers un backend tout en s'exécutant dans le navigateur pour récupérer et envoyer des données.

Passons maintenant à la discussion sur certains avantages et inconvénients de l'application Blazor et du moteur de vue Razor.

Avantages et inconvénients de Blazor et Razor

En ce qui concerne la création d'applications web interactives basées sur le framework .NET, Blazor et Razor sont tous deux fortement favorisés. Ces technologies offrent une transition nouvelle pour utiliser C# comme langage de programmation principal pour des projets JavaScript standard.

Voici quelques avantages et inconvénients à considérer lors de la création d'applications web en utilisant Razor ou Blazor.

Avantages de Blazor

  • Blazor côté client exécute directement le code .NET dans le navigateur en utilisant WebAssembly (le rendant plus rapide et moins consommateur de bande passante réseau) et fournit un contenu web dynamique.
  • Il utilise la même syntaxe et logique que les langages côté serveur, le rendant compatible avec toutes les bibliothèques et outils .NET.

Inconvénients de Blazor

  • Il y a peu d'outils .NET et de support de débogage disponibles pour l'exécution des applications .NET côté client utilisant Blazor.
  • Les avantages en termes de performance de Blazor côté client ne sont pas présents dans l'implémentation côté serveur.

Avantages de Razor

  • Razor permet l'insertion logique (conditionnelle) de code C# dans les pages web.
  • Razor est extrêmement flexible et peut être utilisé pour créer une grande gamme d'applications.
  • La structure de Razor est bien organisée.

Inconvénients de Razor

  • JavaScript est nécessaire pour implémenter des interactions dynamiques côté client.
  • Plusieurs pages autonomes peuvent être difficiles à gérer et à maintenir avec Razor.

La fonctionnalité remarquable d'IronPDF est la conversion de HTML en PDF avec IronPDF, qui conserve les mises en page et les styles. Cette fonctionnalité est idéale pour générer des PDFs à partir de contenu basé sur le web, tel que des rapports, des factures et de la documentation. Les fichiers HTML, les URL et les chaînes HTML peuvent tous être convertis en PDFs.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 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");

        // 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");

        // 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();

        // 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");

        // 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");

        // 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()

		' 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")

		' 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")

		' 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

Ce programme C# démontre l'utilisation de IronPdf pour convertir du contenu HTML en documents PDF. Il prend en charge les conversions à partir d'une chaîne HTML, d'un fichier HTML et d'une URL.

Conclusion

Razor peut gérer la logique API et le templating côté serveur, mais ne peut pas gérer une logique côté client qui n'est pas basée sur JavaScript. Blazor permet aux programmeurs de gérer les fonctionnalités côté client et serveur avec juste C#. Razor est une syntaxe de balisage pour les modèles qui incorpore du code côté serveur dans le HTML. Blazor, d'autre part, est un framework SPA qui peut fonctionner soit sur Blazor WebAssembly soit sur le Blazor Serveur, selon la situation.

Discover IronPDF for the easiest way to create, read, update, and manipulate PDF files in both Razor applications and applications Blazor. IronPDF fait partie de la Iron Suite d'Iron Software qui contient cinq bibliothèques utiles pour créer des applications web Razor ou Blazor avec Excel, PDF, Barcodes, QR Codes, et images.

Iron Suite est disponible gratuitement pour un usage personnel. Pour plus d'informations sur l'obtention d'une licence commerciale, veuillez visiter les informations sur les licences Iron Suite.

Questions Fréquemment Posées

Comment puis-je utiliser Razor pour créer des pages web dynamiques ?

Razor permet aux développeurs de créer des pages web dynamiques en intégrant du code serveur .NET dans du HTML. Cela se fait en utilisant la syntaxe Razor dans les fichiers .cshtml. Razor aide à générer du contenu dynamiquement basé sur la logique du serveur.

Quelle est l'utilisation principale de Blazor en développement web ?

Blazor est principalement utilisé pour construire des applications web interactives côté client en utilisant les langages .NET. Il utilise WebAssembly pour exécuter le code .NET dans le navigateur, permettant le développement d'Applications à Page Unique (SPA) sans dépendance au JavaScript.

Razor peut-il être utilisé pour le développement d'applications côté client ?

Razor est généralement utilisé pour la génération et le gabarit de pages côté serveur dans les applications ASP.NET. Pour le développement côté client, Blazor est plus approprié car il permet de construire des SPA interactives qui s'exécutent dans le navigateur.

Comment Blazor bénéficie-t-il de l'utilisation de la syntaxe Razor ?

Blazor utilise la syntaxe Razor pour créer des composants réutilisables dans les applications côté client. Cette intégration permet aux développeurs d'utiliser des fonctionnalités Razor familières, telles que les boucles et les conditionnelles, pour construire des composants web dynamiques et interactifs.

Quels sont les avantages de l'utilisation de Razor pour le développement web côté serveur ?

Razor offre une approche structurée du développement web côté serveur, permettant une intégration transparente du code C# dans le HTML. Il permet de créer une large gamme d'applications, offrant flexibilité et une séparation claire entre le contenu et la logique.

Comment IronPDF peut-il améliorer la génération de contenu web dans les applications .NET ?

IronPDF peut convertir des HTML, des URL et des chaînes HTML en documents PDF, préservant la mise en page et les styles. Ceci est particulièrement utile pour générer des rapports, des factures et d'autres documents à partir de contenu web dans les applications .NET.

Quels défis les développeurs pourraient-ils rencontrer en utilisant Razor pour du contenu dynamique ?

L'utilisation de Razor pour du contenu dynamique nécessite JavaScript pour les interactions côté client, ce qui peut compliquer la gestion de plusieurs pages autonomes. Les développeurs peuvent rencontrer des défis pour maintenir des expériences fluides côté client.

Comment Blazor prend-il en charge la création d'Applications à Page Unique (SPA) ?

Blazor prend en charge la création de SPA en exécutant du code .NET dans le navigateur via WebAssembly. Cela permet aux développeurs de créer des applications interactives côté client avec du contenu dynamique géré sur le client, réduisant la charge du serveur.

Pour quel type d'applications Razor est-il le mieux adapté ?

Razor est le mieux adapté pour le gabarit de pages côté serveur dans les applications ASP.NET, où des pages entières sont générées sur le serveur. Il est idéal pour les applications qui nécessitent une génération de contenu dynamique basée sur la logique du serveur.

Quelles sont certaines des limitations de l'utilisation de Blazor pour le développement web ?

Bien que Blazor offre des avantages de performance grâce à l'exécution côté client, il présente des limitations telles que le support réduit des outils .NET et du débogage pour les applications côté client. De plus, sa version serveur ne profite pas pleinement de ces avantages de performance.

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