.NET-HILFE

Razor gegen Blazor

Veröffentlicht 18. Dezember 2022
Teilen Sie:

**Razor und Blazor sind zwei der beliebtesten Web-UI-Frameworks für die Erstellung von Webanwendungen in der Visual Studio-Entwicklungsumgebung. In diesem Blogbeitrag werden die Gemeinsamkeiten und Unterschiede zwischen diesen beiden .NET-Technologien anhand ihrer Syntax, Interaktionen, Vorteile und Nachteile untersucht. Außerdem werden einige Anwendungsfälle mit einigen Codebeispielen demonstriert


Was ist Razor und Blazor in ASP.NET Core?

Rasiermesser

Razor ist eine serverseitige Auszeichnungssprache, die es Entwicklern ermöglicht, Webseiten dynamisch mit HTML und eingebettetem, serverseitigem .NET-Code zu erstellen. Razor generiert Webseiten aus Razor-Seiten, Webseiten-Vorlagendateien, die mit C# oder VB. Razor-Seiten, die mit VB-Code geschrieben wurden, verwenden die Dateierweiterung .vbhtml, und Razor-Seiten, die mit C#-Code geschrieben wurden, verwenden die Dateierweiterung .cshtml.

Moderne ASP.NET-Webanwendungen unterstützen Razor, und es kann anstelle von traditionellem ASP.NET-Markup verwendet werden, um Komponenten für die Anwendungsansicht zu generieren.

Blazor

Blazor ist ein Webapplikations-Framework, das es Entwicklern ermöglicht, interaktive, clientseitige Schnittstellenanwendungen mit .NET-Programmiersprachen zu erstellen. Mit Blazor erstellte Webanwendungen sind einseitige Anwendungen (SPA) die innerhalb eines Webbrowser-Clients ausgeführt werden (nicht auf einem Webserver). Die browser-seitige Ausführung von Anwendungen ist dank WebAssembly möglich. WebAssembly ist eine plattformübergreifende Befehlssatzbibliothek, die in allen modernen Webbrowsern zu finden ist und mit der .NET-Quellcode ausgeführt werden kann.

Mit Blazor ist es Entwicklern möglich, wiederverwendbare, interaktive clientseitige Webkomponenten mit C#, HTML und CSS zu erstellen (ohne JavaScript einbinden zu müssen). Da diese Komponenten in C# geschrieben sind, können die Entwickler außerdem Implementierungsdetails zwischen Client und Server in Form von Quellcode und Bibliotheken hin- und herschieben.

Verwendet Blazor Razor-Komponenten?

Blazor unterstützt die Razor-Syntax vollständig. Sie können Blazor-Anwendungen mit dem vollen Funktionsumfang von Razor erstellen: mit Schleifen, Bedingungen usw. Betrachten Sie das folgende Beispiel.

@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#

Verbindung zwischen Razor und Blazor

Wir können deutlich sehen, dass es eine Beziehung zwischen Blazor und Razor gibt. Schließlich ist der Name Blazor selbst eine Kombination aus den Wörtern "Browser" und "Rasiermesser"

Razor und Blazor werden beide zur Erstellung von Webanwendungen mit HTML und C# verwendet. Da sie quelloffen und kostenlos sind, können Entwickler sie sofort und ohne Einschränkung nutzen. Bei der Entwicklung von ASP.NET-Webanwendungen verwenden wir die Razor-Syntax, weil sie ASP.NET Core und ASP.NET MVC ähnlicher ist.

Blazor erstellt flexible, interaktive Benutzeroberflächen aus einer oder mehreren Komponenten, die mit der Razor-Syntax geschrieben wurden.

An dieser Stelle müssen wir einen wichtigen Unterschied zur Verwendung von Razor in Blazor machen: Razor wird verwendet, um Komponenten zu erstellen (schaltflächen, Seitenelemente, etc)und nicht um ganze Seiten zu erstellen.

Außerdem werden Razor-Dateien (dateien mit der Erweiterung .chtml) innerhalb von Blazor sind formal als Razor-Komponenten bekannt, nicht als Blazor-Komponenten (obwohl beide Begriffe in vielen Entwicklungskreisen synonym verwendet werden).

Funktionsweise von Razor Pages und Blazor Server

Razor arbeitet innerhalb von MVC-Anwendungen, um ganze Seiten an den Browser zu liefern.

Razor vs Blazor, Abbildung 1: Razor-Seiten in Aktion

Razor Pages in Aktion

Wenn ein Benutzer auf eine Schaltfläche oder einen Link klickt, sendet der Browser eine Anfrage an den Server, der auf die Datenbank zugreift und die .cshtml Razor Views abruft (oder Razor-Seite)verarbeitet die Daten und das Markup zusammen und gibt das Ganze an den Browser zurück (neudarstellung der gesamten Seite).

Mit Blazor hingegen können Sie eine ganze Webseite aus einer Reihe kleinerer Komponenten erstellen, die in Razor-Syntax geschrieben sind.

Razor gegen Blazor, Abbildung 2: Blazor in Aktion

Blazor in Aktion

Dies veranschaulicht die Funktionsweise von Blazor WebAssembly (Blazor WASM).

Der erste Aufruf Ihrer Blazor-WASM-Anwendung gibt das komplette Programm zurück, einschließlich aller von Ihnen definierten Komponenten, ähnlich wie eine mit JavaScript erstellte Single Page Application.

Da der Browser nun Zugriff auf diese Elemente hat, kann er sie in Reaktion auf Informationen und Ereignisse anzeigen, verbergen und aktualisieren.

Auf diese Weise ähneln Blazor-Anwendungen eher den Anwendungen, die Sie mit einer "modernen" JavaScript-Bibliothek/einem Framework wie Vue oder Angular entwickeln würden. Blazor-Anwendungen führen Netzwerkaufrufe an ein Backend aus, während sie im Browser laufen, um Daten abzurufen und zu senden.

Lassen Sie uns nun einige Vor- und Nachteile der Blazor-App und der Razor View-Engine diskutieren.

Vor- und Nachteile von Blazor und Razor

Wenn es um die Erstellung interaktiver Webanwendungen auf der Grundlage des .NET-Frameworks geht, sind Blazor und Razor sehr beliebt. Diese Technologien bieten einen neuartigen Übergang von der Verwendung von C# als primäre Programmiersprache für Standard-JavaScript-Projekte.

Hier sind einige Vor- und Nachteile, die bei der Erstellung einer Webanwendung mit Razor oder Blazor zu bedenken sind.

Vorteile von Blazor

  • Client-seitiger Blazor führt .NET-Code direkt im Browser mit WebAssembly aus (wodurch sie schneller ist und weniger Netzwerkbandbreite verbraucht) und bietet dynamische Webinhalte.
  • Sie verwendet dieselbe Syntax und Logik wie serverseitige Sprachen und ist daher mit allen .NET-Bibliotheken und -Werkzeugen kompatibel.

Nachteile von Blazor

  • Für die clientseitige Ausführung von .NET-Anwendungen mit Blazor sind nur wenige .NET-Tools und Debugging-Unterstützung verfügbar.
  • Die Leistungsvorteile des clientseitigen Blazor sind in der serverseitigen Implementierung nicht vorhanden.

Vorteile des Rasierers

  • Razor ermöglicht die logische (bedingt) einfügen von C#-Code in Webseiten.
  • Razor ist äußerst flexibel und kann für die Erstellung einer Vielzahl von Anwendungen verwendet werden.
  • Die Struktur von Razor ist gut gegliedert.

Nachteile von Razor

  • JavaScript ist erforderlich, um dynamische, clientseitige Interaktionen zu implementieren.
  • Mehrere in sich geschlossene Seiten können mit Razor schwer zu verwalten und zu pflegen sein.

    Das herausragende Merkmal von IronPDF ist das Konvertieren HTML zu PDF, wodurch Layouts und Stile erhalten bleiben. Diese Funktionalität ist ideal zur Erstellung von PDFs aus webbasierten Inhalten, wie zum Beispiel Berichten, Rechnungen und Dokumentationen. HTML-Dateien, URLs und HTML-Strings können alle in PDFs konvertiert werden.

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#

Schlussfolgerung

Razor kann API-Logik und serverseitiges Templating verarbeiten, aber es kann keine clientseitige Logik verarbeiten, die nicht auf JavaScript basiert. Blazor ermöglicht es Programmierern, sowohl client- als auch serverseitige Funktionen mit C# zu verwalten. Razor ist eine Auszeichnungssyntax für Vorlagen. Er bindet serverseitigen Code in das HTML ein. Blazor hingegen ist ein SPA-Framework, das je nach Situation entweder auf Blazor WebAssembly oder dem Blazor Server laufen kann.

IronPDF bietet die einfachste Möglichkeit, PDF-Dateien zu erstellen, zu lesen, zu aktualisieren und zu bearbeiten, sowohl in Rasiermesser und Blazor anwendungen. IronPDF ist ein Teil von Iron Software's Iron Suite die aus fünf nützlichen Bibliotheken besteht, die bei der Erstellung von Razor- oder Blazor-Webanwendungen mit Excel, PDF, Barcodes, QR-Codes und Bildern hilfreich sind.

Iron Suite ist für den persönlichen Gebrauch frei verfügbar. Für weitere Informationen über den Erwerb einer kommerziellen Lizenz, klicken Sie bitte auf hier.

< PREVIOUS
Was ist Blazor Framework (Wie es funktioniert für Entwickler Tutorial)
NÄCHSTES >
Was ist NuGet?

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >