using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
**Razor und Blazor sind zwei der beliebtesten Web-UI-Frameworks zur 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. Es wird auch einige Anwendungsfälle mit einigen Codebeispielen demonstrieren.
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, Webseitenschablonendateien, die mit C# oder VB geschrieben sind. Razor-Seiten, die mit VB-Code geschrieben sind, verwenden die Dateierweiterung .vbhtml, und Razor-Seiten, die mit C#-Code geschrieben sind, 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. Webanwendungen, die mit Blazor erstellt wurden, sind Einzelseitenanwendungen (SPA), die innerhalb eines Webbrowsers auf der Client-Seite ausgeführt werden (nicht auf einem Webserver). Die browser-seitige Ausführung von Anwendungen wird durch WebAssembly ermöglicht. WebAssembly ist eine plattformübergreifende Befehlssatzbibliothek, die in allen modernen Webbrowsern zu finden ist, die .NET-Quellcode ausführen können.
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, haben die Entwickler außerdem die Flexibilität, Implementierungsdetails zwischen dem Client und dem Server als Quellcode und Bibliotheken hin- und herzuschieben, falls erforderlich.
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
$vbLabelText $csharpLabel
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 diesem Punkt müssen wir einen wichtigen Unterschied machen, wie Razor in Blazor verwendet wird: Es wird genutzt, um Komponenten (Buttons, Seitenelemente usw.) zu erstellen und nicht um ganze Seiten zu bauen.
Zusätzlich sind Razor-Dateien (Dateien mit der .chtml-Erweiterung) innerhalb von Blazor formell als Razor-Komponenten bekannt, nicht als Blazor-Komponenten (obwohl beide Begriffe in vielen Entwicklerkreisen austauschbar verwendet werden).
Funktionsweise von Razor Pages und Blazor Server
Razor arbeitet innerhalb von MVC-Anwendungen, um gesamte Seiten an den Browser zu liefern.
Razor Pages in Aktion
Wenn ein Benutzer auf eine Schaltfläche oder einen Link klickt, sendet der Browser eine Anfrage an den Server, der die Datenbank aufruft, die .cshtml Razor-Ansichten (oder Razor-Seite) abruft, die Daten und das Markup zusammenmischt und das Ganze an den Browser zurückgibt (wodurch die gesamte Seite neu gerendert wird).
Mit Blazor hingegen können Sie eine ganze Webseite aus einer Reihe kleinerer Komponenten erstellen, die in Razor-Syntax geschrieben sind.
Blazor in Aktion
Dies veranschaulicht den Betrieb 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 geht, die auf dem .NET Framework aufbauen, 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 von Webanwendungen mit Razor oder Blazor zu beachten sind.
Vorteile von Blazor
Client-seitiges Blazor führt .NET-Code direkt im Browser mit WebAssembly aus (was es schneller und weniger verschwenderisch im Hinblick auf die Netzwerkbandbreite macht) 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 das logische (bedingte) Einfügen von C#-Code in Webseiten.
Razor ist sehr 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 die Umwandlung von HTML zu PDF mit IronPDF, wobei 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
$vbLabelText $csharpLabel
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.
Entdecken Sie IronPDF für die einfachste Möglichkeit, PDF-Dateien in Razor-Anwendungen und Blazor-Anwendungen zu erstellen, zu lesen, zu aktualisieren und zu bearbeiten. IronPDF ist ein Teil der Iron Software's Iron Suite, die fünf nützliche Bibliotheken enthält, die beim Erstellen von Razor- oder Blazor-Webanwendungen mit Excel-, PDF-, Barcodes-, QR-Codes- und Bildfunktionen hilfreich sind.
Iron Suite ist für den persönlichen Gebrauch frei verfügbar. Für weitere Informationen zur Erlangung einer kommerziellen Lizenz besuchen Sie bitte die Iron Suite Licensing Information.
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS Was ist Blazor Framework (Wie es funktioniert für Entwickler Tutorial)