Was ist das Blazor Web Framework von Microsoft und sollten Sie es verwenden??

Inhalt

Blazor-Logo

Blazor ist ein neues Microsoft-Webframework, das entwickelt wurde, um mit branchenführenden Plattformen wie React . zu konkurrieren. Außer dass, anstatt JavaScript zu verwenden, läuft auf der .NET-Runtime und ermöglicht Entwicklern die Erstellung interaktiver Webanwendungen mit C # und HTML.

Was ist ASP.NET inklusive??

Wenn Sie aus der Welt der JavaScript-Frameworks kommen, Sie könnten verwirrt sein, Blazor mit ASP.NET zu verknüpfen. Beide sind “Web-Frames”, aber Blazor ist nur ein Teil des ASP.NET-Ökosystems.

Während ASP.NET-Plattform hat fast 20 Jahre zu dieser Zeit, kein dinosaurierrahmen; hat sich zusammen mit C . stetig verbessert # und .NET insgesamt, da Microsoft es intern verwendet. Es ist absolut plattformübergreifend und so effizient wie eh und je.

Anfangs, nur ASP.NET existierte, mit denen alle Arten von Webanwendungen erstellt werden können. Ich war ASP.NET MVC (Model View Controller), das erstellt datengesteuerte Webseiten, und ASP.NET WebAPI, das auf Backend-API spezialisiert ist. Diese wurden kürzlich mit modernisiertem ASP.NET Core zu einem einheitlichen Paket zusammengeführt.

Vor fünf Jahren, Rasiermesserseiten (das ist etwas anderes als Blazor und hat einen verwirrenden Namen) wurde veröffentlicht, um die ausdrucksstarke Syntax von MVC . zu vereinfachen, die viel Standardtext braucht und, als solche, funktioniert nicht gut mit komponentenzentriertem Design moderner Anwendungen. MVC erfordert, dass Sie Ansicht und Modell für jede Seite in separaten Dateien erstellen:

MVC erfordert, dass Sie eine Ansicht und ein Modell für jede Seite in separaten Dateien erstellen:

In der Zwischenzeit, mit Rasiermesser, Sie können optimiertere Seiten oder Komponenten mit Code erstellen, der in die Seite selbst eingebettet ist. Das funktioniert am besten, wenn die Seiten einfacher sind, aber beide sind als Optionen für Ihre Verwendung verfügbar.

In der Zwischenzeit, mit Rasiermesser, Sie können optimiertere Seiten oder Komponenten mit Code erstellen, der in die Seite selbst eingebettet ist.

All diese Funktionen sind Teil des Ökosystems “ASP.NET”. Der große Teil sind die Pakete und der Support. Genauso wie NPM für JavaScript, C # hat auch eine gesunde Paketumgebung mit NuGet-Paketmanager.

Dann, Was ist Blazer?

Blazor ändert nichts an der Syntax dieser Seiten. Sie werden weiterhin Razor-Seiten verwenden und / o MVC. Genau genommen, das ist nicht mal schlimm, weil es bereits zahlreiche Benutzeroberflächen und Komponentenbibliotheken gibt, die für C-backed Razor-Seiten erstellt wurden #.

Was Blazor hinzufügt ist Interaktivität. Traditionelle MVC-Seiten / Razor mit ASP.NET war schon immer ungeschickt und hatte Probleme mit Echtzeit-Webanwendungen wie React . Schritt zu halten. Echtzeit-Webanwendungen sind so schnell, dass sie auch beginnen, die Kontrolle über den Desktop zu übernehmen, mit Frameworks wie Electron, die Apps in einem Chromium-Container ausführen, ohne dass die Benutzer es bemerken.

Dann, Blazor wurde geschaffen, um dieser Nachfrage gerecht zu werden. Es funktioniert sehr ähnlich wie React, wo Aktionen Status und Zubehör ändern und App-Updates auslösen. Das Framework kümmert sich um die Aktualisierung des DOM basierend auf den Komponenten, die aktualisiert werden müssen. Dies ermöglicht Echtzeitanwendungen, bei denen die Seite aktualisiert oder sogar komplett neu gezeichnet werden kann, ohne den Browser aktualisieren zu müssen..

Der Vorteil von Blazor gegenüber einem etablierten Framework wie React ist die Sprache. Ermöglicht das Erstellen von Webanwendungen mit C #, und das allein macht es für viele Entwickler attraktiv. Was auch immer Sie von der Debatte um dynamisches vs. statisches Schreiben halten, Es gibt definitiv Vorteile, um “Schreibtisch” wie C #, und dem Web fehlen ernsthaft Alternativen zu JavaScript.

Wenn Sie ein Backend haben, das hohe Leistung benötigt, C # Außerdem läuft es viel schneller als JavaScript. Auch wenn JS keineswegs langsam ist und sich über die Jahre sehr verbessert hat, wird immer noch weniger als C . ausführen #, was der nativen C-Leistung ziemlich nahe kommt ++.

Blazor ermöglicht bessere Interoperabilität. Viele Anwendungen verwenden auch C # und el backend. Als Beispiel, Sie können eine ASP.NET-API haben, die mit Ihrer React-Schnittstelle interagiert. Sie benötigen separate Modelle für die Server- und die Clientseite, sowie einen separaten Code, um mit ihnen zu interagieren. Wenn sie dieselbe Sprache haben, ermöglicht Ihnen die einfache gemeinsame Nutzung von Code und Bibliotheken zwischen Client und Server. Deshalb existiert NodeJS serverseitig, obwohl JavaScript nicht die ideale Desktop-Sprache ist, integrierte Anwendungen in einer einzigen Sprache zu haben, verkürzt die Entwicklungszeit.

Die Zukunft von Blazor

Genau genommen, Es gibt verschiedene Arten von Blazern, da Microsoft in letzter Zeit einen großen Entwicklungsschub unternommen hat, um das ASP.NET-Ökosystem zu modernisieren. Heute, Es gibt zwei Versionen, die veröffentlicht wurden:

  • Blazor-Server, die wie React Server Side Rendering funktioniert und den größten Teil des Renderings auf dem Server erledigt.
  • Blazor WebAssembly, die die Magie von WebAssembly nutzt, um echten .NET-Code in einem echten Client-Webbrowser auszuführen.

Microsoft plant außerdem die Veröffentlichung von drei weiteren Versionen von Blazor, die sich noch in der Entwicklung befinden und für die Vorschau verfügbar sind:

  • Blazor GEWICHT, die darauf ausgelegt ist, die Site als progressive Webanwendung zu veröffentlichen (LAST) installierbar.
  • Blazor-Desktop / Hybrid, was es ermöglicht, Blazor-Anwendungen in Desktop-Anwendungen zu packen und ist einfach wie Electron, aber mit besserer Leistung.
  • Ureinwohner von Blazor, die die webbasierte Benutzeroberfläche durch eine plattformnative Oberfläche ersetzt. Es ist nicht klar, wie nützlich das ist, während Interoperabilität mit bestehenden Blazor-Tools, und diese Version ist noch in Planung.

In Ihrer Blazor Desktop-Anzeige, Microsoft erklärte, dass „Blazor ein Anwendungsprogrammiermodell“ ist. Es ist sehr anpassungsfähig und kann auf verschiedene Arten ausgeführt werden (Nach Bedarf) “.

Microsoft scheint Blazor als seinen nächsten Standard für die Erstellung von Anwendungsschnittstellen zu betrachten.. Seine Arbeit ist auch wichtig, hervorzuheben, weil Anwendungen immer abhängiger vom Web werden, schwieriger zu rechtfertigen, separate Oberflächen für Web und Desktop zu erstellen. Blazor hat eine glänzende Zukunft und Webanwendungen, die heute auf Blazor Server und WebAssembly erstellt werden, werden viel Raum für Wachstum haben..

Blazor Server frente a Blazor WebAssembly

Blazor Server verwendet a SignalR-Verbindung zwischen Client und Server kommunizieren. Dies ist nur eine ausgefallene Ebene über einer WebSocket-Verbindung, die bei Bedarf optional auf andere Anschlüsse zurückgreifen kann. Dadurch bleibt die gesamte Verarbeitung auf dem Server und der Client bleibt eine einfache Ansicht mit einer einfachen Möglichkeit, das DOM zu manipulieren.

Blazor Server verwendet eine SignalR-Verbindung, um zwischen dem Client und dem Server zu kommunizieren.

Bei Blazor WebAssembly wird es richtig cool. WebAssembly (WASM) nicht wirklich eine sprache, die du schreibst, aber ein Compilerziel. Genau genommen, funktioniert fast genauso wie die Zwischensprache von Microsoft (MSIL) in dem alle C's kompiliert sind #, F # und VB.NET. Außer dass, anstatt mit einer .NET Runtime zu laufen, läuft über die WebAssembly-Laufzeit im Browser.

Wasm kann als portables Build-Ziel für andere Sprachen verwendet werden

Das Tolle an WebAssembly ist, dass es ein relativ einfach zu erreichendes Compilerziel ist. Genauso wie C # kann in MSIL . kompiliert werden, C # es kann auch in WebAssembly kompiliert werden. Brunnen, technisch, ist MSIL-Kompilierung in WebAssembly (weil es einfacher ist), aber der punkt ist der selbe.

Jede Sprache kann in WASM . kompiliert werden, inklusive absolut nativer Desktopsprachen wie C ++. Das ist nicht theoretisch, funktioniert tatsächlich in der Praxis. AutoDesk konnte AutoCAD portieren, eine C-Code-Basis ++ von 30 Jahre, zu einer Webanwendung auf Basis von WebAssembly, in ein paar Monaten mit relativer Leichtigkeit. Jemand sogar portiert Untergang 3.

Blazor WebAssembly nimmt nur den gesamten Server ein, sowie die .NET-Runtime und führt sie auf WASM aus. Anschließend, anstatt über SignalR mit dem Server zu sprechen, Sprechen Sie direkt mit dem DOM. Dadurch entfällt die serverseitige Verarbeitung, was für einige Anwendungen ideal sein kann.

Anstatt über SignalR mit dem Server zu sprechen, Blazor WebAssembly spricht direkt mit dem DOM.

Dies versetzt es in eine einzigartige Position, um mit Frameworks wie React . zu konkurrieren, da es im Wesentlichen der erste echte Konkurrent von JavaScript für Client-Webanwendungen ist. Sie müssen jedoch einige Skript-Tags hinzufügen, um die Laufzeit zu laden, und Sie müssen möglicherweise für einige Dinge in den JavaScript-Code eintauchen., hauptsächlich, Sie sollten in der Lage sein, eine vollständige Produktions-Webanwendung zu erstellen, ohne eine einzige Zeile JavaScript schreiben zu müssen.

Blazor WASM hat langsame anfängliche Ladezeiten, Dies kann jedoch durch die Verwendung eines Hybridmodus behoben werden, der das Vor-Rendering verwendet, um das anfängliche Rendering auf dem Server zu generieren, aber alle nachfolgenden Updates über WASM ausführen. Dies hat eine Menge Macken und befindet sich noch in der Beta-Phase, aber wenn du mehr informationen willst, können Sehen Sie sich diese Jon Hilton-Guides an.

Sie verwenden Blazor Server oder Blazor WebAssembly, es liegt an Ihnen. Beides hat seine Vorteile. Blazor Server führt den gesamten Verarbeitungscode in einer vertrauenswürdigen Umgebung aus und erfordert keine öffentliche API. Blazor WASM ist reaktionsschnell und schnell, und es kann sogar als statische Site implementiert werden, die nur mit NGINX bedient wird.

Wie funktioniert Blazor mit JavaScript??

Wie auch immer, hat volle JavaScript-Interoperabilität. Blazor kann JS-Funktionen aus verwaltetem Code aufrufen:

private asynchrone Task ConvertArray()
{
    Text = neu(warten auf JS.InvokeAsync<Schnur>("convertArray", ZitatArray));
}

Und umgekehrt:

DotNet.invokeMethodAsync('{MONTAGENAME}', '{.NET-METHODEN-ID}', {ARGUMENTE});

Trotz dieses, beachte, dass dies, selbstverständlich, wird Reflexion verwenden, und es ist sicherlich nicht die effektivste sache der welt.

Technisch, Sie können alle NPM-Pakete mit Blazor verwenden, selbst wenn es von der .NET-Seite aus konfiguriert und damit interagiert wird, kann dies Kopfschmerzen bereiten, Daher sollten Sie die meiste Zeit ein NuGet-Paket bevorzugen.

Können Sie Blazor auf dem Desktop verwenden? (Elektron)?

Sie können Blazor auf dem Desktop verwenden.

Überraschenderweise, die lösung ist ja. Obwohl Microsoft plant, Blazor Desktop zu veröffentlichen / Hybrid, das macht das gleiche, in der Zwischenzeit, kann normales Elektron verwenden. Dies liegt daran, dass Electron sich nicht wirklich darum kümmert, welche Webseite es bereitstellt und nur eine Blazor-Anwendung bedienen kann.

Sie könnten denken, Sie würden eine Blazor WebAssembly-App verwenden, aber es ist tatsächlich einfacher, Electron einfach zu einem vorhandenen ASP.NET Core-Server hinzuzufügen. WASM hat etwas Overhead, diese Methode ist also schneller. Das ist was Electron.NET macht es, und es funktioniert überraschend gut. Alles, was Sie tun müssen, ist es zu installieren und Electron als ASP.NET-Dienst hinzuzufügen. Zusätzlich können Sie native Elektronenfunktionen von C . aufrufen #.

Trotz dieses, Microsoft hat größere Pläne für Blazor Desktop. Sie planen, die Abhängigkeit von einem Browser und JavaScript vollständig aufzugeben und einfach einen nativen Container mit einer Webansicht auszuführen, die vollständig .NET ist..

„Der Blazor-Desktop wird so strukturiert sein, wie Electron funktioniert. Es wird ein WebView-Steuerelement geben, das Inhalte von einem integrierten Blazor-Webserver verarbeitet, die sowohl Blazor als auch andere Webinhalte bereitstellen können (JavaScript, CSS, usw.) “.

Diese Webansicht würde Safari verwenden, WebKitGTK oder WebView2, abhängig vom Betriebssystem. WebView2 verwendet Chromium unter der Haube, also würde es sehr ähnlich zu Electron funktionieren, außer effizienter zu sein und weniger Speicher zu verbrauchen.


Was auch immer die Umsetzung ist, Es ist spannend zu sehen, wie eine andere Plattform mit JavaScript und Electron konkurriert, um plattformübergreifende Desktop- und Webanwendungen zu erstellen. Blazor Desktop soll im November starten 2021 mit der ersten .NET-Vorschau 6.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.