AIDE .NET

Razor vs Blazor

Publié décembre 18, 2022
Partager:

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 sur la base de leur syntaxe, de leurs interactions, de leurs avantages et de leurs inconvénients. Il démontrera également certains cas d'utilisation à l'aide d'exemples de code.


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

Rasoir

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

Les applications web ASP.NET modernes prennent en charge Razor, qui peut être utilisé à la place du balisage ASP.NET traditionnel pour générer des composants de vue d'application.

Blazor

Blazor est un cadre d'application web qui permet aux développeurs de créer des interfaces interactives côté client à l'aide des langages de programmation .NET. Les applications web construites avec Blazor sont des applications à page unique(SPA) qui s'exécutent à l'intérieur d'un navigateur web client(pas sur un serveur web). L'exécution d'applications côté navigateur est rendue possible grâce à WebAssembly. WebAssembly est une bibliothèque d'instructions multiplateforme que l'on trouve dans tous les navigateurs modernes capables d'exécuter du code source .NET.

Avec Blazor, il est possible pour les développeurs de créer des composants web réutilisables et interactifs côté client avec C#, HTML et CSS(sans avoir besoin d'incorporer JavaScript). En outre, comme ces composants sont écrits en C#, les développeurs ont la possibilité de déplacer les détails de l'implémentation dans les deux sens entre le client et le serveur sous forme de code source et de bibliothèques, selon les besoins.

Blazor utilise-t-il des composants Razor ?

Blazor supporte entièrement la syntaxe Razor. Vous pouvez construire des applications Blazor en utilisant l'ensemble des fonctionnalités de balisage de Razor : en utilisant des boucles, des conditionnelles, etc. Prenons l'exemple suivant.

@page "/HelloWorld"

<h1>
   Example Component
</h1>

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

<h1>
   Example Component
</h1>

@foreach(var person in People){
    <h2>person.FirstName</h2>
}
'INSTANT VB TODO TASK: The following line could not be converted:
page "/HelloWorld" (Of h1) Example Component </h1> foreach(var person in People)
If True Then
	(Of h2) person.FirstName</h2>
End If
VB   C#

Connexion entre Razor et Blazor

Nous voyons clairement qu'il existe une relation entre Blazor et Razor. Après tout, le nom de Blazor est lui-même 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#. Comme ils sont libres 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, car elle est plus proche d'ASP.NET Core et d'ASP.NET MVC.

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

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

En outre, les fichiers Razor(les fichiers portant l'extension .chtml) au sein de Blazor sont formellement connus comme composants de Razor, et non comme composants de Blazor(bien que les deux mots soient utilisés de manière interchangeable dans de nombreux cercles de développement).

Fonctionnement de Razor Pages et du serveur Blazor

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

Razor vs Blazor, Figure 1: Pages Razor en action

Les pages Razor en action

Lorsqu'un utilisateur clique sur un bouton ou un lien, le navigateur envoie une demande au serveur, qui consulte la base de données et récupère le fichier .cshtml Razor Views(ou page Razor)le site Web de la Commission européenne, qui fusionne les données et le balisage, renvoie le tout au navigateur(le re-rendement de la page entière).

Blazor, quant à lui, permet de créer une page web complète à l'aide d'une série de composants plus petits écrits dans la syntaxe Razor.

Razor vs Blazor, Figure 2 : Blazor en action

Blazor en action

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

Le premier appel à votre application Blazor WASM renvoie le programme complet, y compris tous les composants que vous avez définis, de la même manière qu'une application à page unique créée à l'aide de JavaScript.

Maintenant que le navigateur a accès à ces éléments, il peut les afficher, les masquer et les mettre à jour en fonction des informations et des é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 "contemporaine" telle que Vue ou Angular. Les applications Blazor effectuent des appels réseau vers un backend tout en fonctionnant dans le navigateur pour récupérer et envoyer des données.

Examinons maintenant les avantages et les inconvénients de l'application Blazor et du moteur Razor View.

Avantages et inconvénients du Blazor et du Razor

Lorsqu'il s'agit de créer des applications web interactives basées sur le .NET Framework, Blazor et Razor sont tous deux très appréciés. Ces technologies offrent une nouvelle transition par rapport à l'utilisation de C# comme langage de programmation principal pour les projets JavaScript standard.

Voici quelques avantages et inconvénients à prendre en compte lors de la création d'applications web à l'aide de Razor ou Blazor.

Avantages de Blazor

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

Inconvénients de Blazor

  • Les outils .NET et le support de débogage disponibles pour l'exécution d'applications .NET côté client à l'aide de Blazor sont limités.
  • Les avantages en termes de performances de Blazor côté client ne sont pas présents dans l'implémentation côté serveur.

Avantages du rasoir

  • Razor permet à la logique(conditionnel) l'insertion de code C# dans les pages web.
  • Razor est très flexible et peut être utilisé pour créer une large gamme d'applications.
  • La structure de Razor est bien organisée.

Inconvénients du rasoir

  • JavaScript est nécessaire pour mettre en œuvre des interactions dynamiques côté client.
  • Il peut être difficile de gérer et d'entretenir plusieurs pages autonomes avec Razor.

    La fonctionnalité exceptionnelle d'IronPDF est la conversionHTML vers 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 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 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
VB   C#

Conclusion

Razor peut gérer la logique de l'API et les modèles côté serveur, mais il ne peut pas gérer la 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 côté serveur avec seulement C#. Razor est une syntaxe de balisage pour les modèles. Il incorpore le code côté serveur dans le code HTML. Blazor, quant à lui, est un framework SPA qui peut fonctionner soit sur Blazor WebAssembly, soit sur le serveur Blazor, en fonction de la situation.

Découvrir IronPDF pour créer, lire, mettre à jour et manipuler facilement des fichiers PDF dans les deux langues officielles de l'Union européenneApplications Razor etApplications Blazor. IronPDF fait partie deIron Software's Iron Suite 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 consulter le site web de la Commission européenneInformations sur les licences d'Iron Suite.

< PRÉCÉDENT
Qu'est-ce que le framework Blazor (Tutoriel sur son fonctionnement pour les développeurs)
SUIVANT >
Qu'est-ce que NuGet ?