Freigeben über


Eine Einführung in Blazor für ASP.NET Web Forms-Entwickler

Tipp

Diese Inhalte sind ein Auszug aus dem eBook „Blazor for ASP NET Web Forms Developers for Azure“, verfügbar unter .NET Docs oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.

Miniaturansicht des Deckblatts des eBooks „Blazor for ASP NET Web Forms Developers for Azure“.

Das ASP.NET Web Forms Framework ist seit der ersten Auslieferung von .NET Framework im Jahr 2002 ein Heftelement der .NET-Webentwicklung. Zurück, als das Web noch weitgehend in seiner Kindheit war, ASP.NET Web Forms das Erstellen von Web-Apps einfach und produktiv machte, indem viele der Muster verwendet wurden, die für die Desktopentwicklung verwendet wurden. In ASP.NET Webformularen können Webseiten schnell aus wiederverwendbaren UI-Steuerelementen zusammengesetzt werden. Benutzerinteraktionen werden natürlich als Ereignisse behandelt. Es gibt ein umfangreiches Ökosystem von Web Forms UI-Steuerelementen, die von Microsoft und Steuerelementanbietern bereitgestellt werden. Die Steuerelemente erleichtern die Verbindung mit Datenquellen und das Anzeigen umfangreicher Datenvisualisierungen. Für den visuellen Geneigten stellt der Web Forms-Designer eine einfache Drag-and-Drop-Schnittstelle zum Verwalten von Steuerelementen bereit.

Im Laufe der Jahre hat Microsoft neue Webframeworks auf ASP.NET-Basis eingeführt, um auf Trends in der Webentwicklung zu reagieren. Einige solcher Webframeworks umfassen ASP.NET MVC, ASP.NET Webseiten und kürzlich ASP.NET Core. Mit jedem neuen Framework haben einige das bevorstehende Ende von ASP.NET Web Forms vorhergesagt und als veraltet und überholt kritisiert. Trotz dieser Vorhersagen finden viele .NET-Webentwickler weiterhin ASP.NET Web Forms eine einfache, stabile und produktive Möglichkeit, ihre Arbeit zu erledigen.

Zum Zeitpunkt des Schreibens verwenden fast eine halbe Million Webentwickler jeden Monat ASP.NET Web Forms. Das ASP.NET Web Forms Framework ist stabil, sodass Dokumente, Beispiele, Bücher und Blogbeiträge vor einem Jahrzehnt nützlich und relevant bleiben. Für viele .NET-Webentwickler ist "ASP.NET" nach wie vor gleichbedeutend mit "ASP.NET Web Forms", wie es war, als .NET zum ersten Mal konzipiert wurde. Argumente für die Vor- und Nachteile von ASP.NET Web Forms im Vergleich zu den anderen neuen .NET-Webframeworks können weitergeführt werden. ASP.NET Web Forms ist weiterhin ein beliebtes Framework zum Erstellen von Web-Apps.

Auch die Innovationen in der Softwareentwicklung verlangsamen sich nicht. Alle Softwareentwickler müssen mit neuen Technologien und Trends auf dem Neuesten bleiben. Es lohnt sich insbesondere, zwei Trends zu berücksichtigen:

  1. Die Umstellung auf Open-Source- und plattformübergreifende Technologien
  2. Die Umstellung der App-Logik auf den Client

Open Source und plattformübergreifendes .NET

Als .NET und ASP.NET Web Forms zum ersten Mal ausgeliefert wurden, sah das Plattformökosystem viel anders aus als heute. Die Desktop- und Servermärkte wurden von Windows dominiert. Alternative Plattformen wie macOS und Linux hatten immer noch Schwierigkeiten, Zugkraft zu gewinnen. ASP.NET Web Forms wird mit .NET Framework als Nur-Windows-Komponente ausgeliefert, was bedeutet, dass ASP.NET Web Forms-Apps nur auf Windows Server-Computern ausgeführt werden können. Viele moderne Umgebungen verwenden jetzt verschiedene Arten von Plattformen für Server und Entwicklungscomputer, sodass plattformübergreifende Unterstützung für viele Benutzer eine absolute Anforderung ist.

Die meisten modernen Webframeworks sind jetzt auch Open Source, was eine Reihe von Vorteilen hat. Benutzer sind nicht an einen einzelnen Projektbesitzer gebunden, um Fehler zu beheben und Funktionen hinzuzufügen. Open-Source-Projekte bieten eine verbesserte Transparenz hinsichtlich des Entwicklungsfortschritts und bevorstehender Änderungen. Open-Source-Projekte profitieren von Beiträgen aus einer ganzen Community und fördern ein unterstützendes Open Source-Ökosystem. Trotz der Risiken von Open Source haben viele Verbraucher und Mitwirkende geeignete Gegenmaßnahmen gefunden, die es ihnen ermöglichen, die Vorteile eines Open-Source-Ökosystems auf sichere und vernünftige Weise zu nutzen. Beispiele für solche Maßnahmen zur Milderung sind Mitwirkendenlizenzverträge, benutzerfreundliche Lizenzen, Pedigree-Scans und unterstützende gemeinnützige Einrichtungen.

Die .NET-Community hat sowohl plattformübergreifende Unterstützung als auch Open Source unterstützt. .NET Core ist eine Open-Source- und plattformübergreifende Implementierung von .NET, die auf einer Vielzahl von Plattformen ausgeführt wird, einschließlich Windows, macOS und verschiedenen Linux-Distributionen. Mono ist eine Open-Source-Version von .NET, die unter Android, iOS und einer Vielzahl anderer Formfaktoren ausgeführt wird, einschließlich Uhren und Smart TVs. Im Jahr 2020 veröffentlichte Microsoft .NET 5, das .NET Core und Mono in eine einzige .NET-Runtime und ein Framework vereinte, die überall verwendet werden können und über einheitliche Laufzeitverhalten und Entwicklererfahrungen verfügen.

Profitieren ASP.NET Web Forms von der Umstellung auf Open Source- und plattformübergreifende Unterstützung? Die Antwort lautet leider nein, oder zumindest nicht im gleichen Umfang wie der Rest der Plattform. Das .NET-Team hat deutlich gemacht , dass ASP.NET Webformulare nicht zu .NET Core oder .NET 8 portiert werden. Warum ist das so?

In den frühen Tagen von .NET Core wurde versucht, ASP.NET Web Forms zu portieren. Die Anzahl der erforderlichen einschneidenden Änderungen stellte sich als zu drastisch heraus. Es wird auch hier zugegeben, dass selbst für Microsoft eine Beschränkung der Anzahl der Web-Frameworks besteht, die es gleichzeitig unterstützen kann. Vielleicht nimmt jemand in der Community das Projekt zur Erstellung einer plattformübergreifenden Open-Source-Version von ASP.NET Web Forms auf. Der Quellcode für ASP.NET Web Forms wurde öffentlich im Referenzformular verfügbar gemacht. Bis dahin sieht es aber ganz so aus, als bliebe ASP.NET Web Forms eine reine Windows-Angelegenheit, ohne Open-Source-Beitragsmodell. Wenn plattformübergreifende Unterstützung oder Open-Source für Ihre Szenarien wichtig werden, müssen Sie nach etwas Neues suchen.

Bedeutet dies, dass ASP.NET WebFormulare tot sind und nicht mehr verwendet werden sollten? Natürlich nicht! Solange das .NET Framework als Teil von Windows ausgeliefert wird, wird ASP.NET Web Forms ein unterstütztes Framework sein. Für viele Web Forms-Entwickler ist das Fehlen plattformübergreifender und Open-Source-Unterstützung kein Problem. Wenn Sie keine Anforderung für plattformübergreifende Unterstützung, Open Source oder eines der anderen neuen Features in .NET Core oder .NET 8 haben, ist es in Ordnung, ASP.NET Web Forms unter Windows beizubehalten. ASP.NET WebFormulare werden weiterhin eine produktive Möglichkeit sein, Web-Apps für viele Jahre zu schreiben.

Aber es gibt einen weiteren Trend, der berücksichtigt werden sollte, und das ist die Umstellung auf den Kunden.

Clientseitige Webentwicklung

Alle . NET-basierte Webframeworks, einschließlich ASP.NET Web Forms, haben historisch gesehen eine Sache gemeinsam: sie werden vom Server gerendert. In vom Server gerenderten Web-Apps sendet der Browser eine Anforderung an den Server, der code (.NET-Code in ASP.NET-Apps) ausführt, um eine Antwort zu erzeugen. Diese Antwort wird an den Browser zurückgesendet, um dies zu verarbeiten. In diesem Modell wird der Browser als dünnes Renderingmodul verwendet. Die harte Arbeit, die Benutzeroberfläche zu erstellen, die Geschäftslogik auszuführen und den Zustand zu verwalten, tritt auf dem Server auf.

Browser sind jedoch zu vielseitigen Plattformen geworden. Sie implementieren eine immer größere Anzahl offener Webstandards, die Zugriff auf die Funktionen des Computers des Benutzers gewähren. Warum sollten Sie die Rechenleistung, den Speicher, den Arbeitsspeicher und andere Ressourcen des Clientgeräts nicht nutzen? Benutzeroberflächeninteraktionen können insbesondere von einem umfassenderen und interaktiveren Verhalten profitieren, wenn sie zumindest teilweise oder vollständig clientseitig behandelt werden. Logik und Daten, die auf dem Server behandelt werden sollen, können weiterhin serverseitig behandelt werden. Web-API-Aufrufe oder sogar Echtzeitprotokolle wie WebSockets können verwendet werden. Diese Vorteile stehen Webentwicklern kostenlos zur Verfügung, wenn sie bereit sind, JavaScript zu schreiben. Clientseitige UI-Frameworks wie Angular, React und Vue vereinfachen die clientseitige Webentwicklung und sind immer beliebter geworden. ASP.NET Web Forms-Entwickler können auch von der Nutzung des Clients profitieren und sogar über eine out-of-the-box-Unterstützung mit integrierten JavaScript-Frameworks wie ASP.NET AJAX verfügen.

Das Überbrücken von zwei verschiedenen Plattformen und Ökosystemen (.NET und JavaScript) ist jedoch kostenaufwendiger. Fachwissen ist in zwei Parallelwelten mit unterschiedlichen Sprachen, Frameworks und Tools erforderlich. Code und Logik können nicht einfach zwischen Client und Server gemeinsam genutzt werden, was zu Duplizierung und Technischem Aufwand führt. Es kann auch schwierig sein, mit dem JavaScript-Ökosystem Schritt zu halten, das eine Geschichte der schnellen Entwicklung hat. Front-End-Framework und Buildtooleinstellungen ändern sich schnell. Die Branche hat die Entwicklung von Grunt zu Gulp zu Webpack beobachtet und so weiter. Eine ähnlich schnelle Abwanderung ließ sich bei Front-End-Frameworks wie jQuery, Knockout, Angular, React und Vue beobachten. Aber angesichts des Browsermonopols von JavaScript gab es wenig Auswahl in der Sache. Das heißt, bis die Webcommunity zusammenkam und ein Wunder verursacht hat!

WebAssembly erfüllt einen Bedarf

Im Jahr 2015 haben sich die großen Browserhersteller in einer W3C Community Group zusammengeschlossen, um einen neuen offenen Webstandard namens WebAssemblyzu erstellen. WebAssembly ist ein Bytecode für das Web. Wenn Sie Ihren Code für WebAssembly kompilieren können, kann er bei nahezu nativer Geschwindigkeit in jedem Browser auf jeder Plattform ausgeführt werden. Erste Anstrengungen konzentrierten sich auf C/C++. Das Ergebnis war eine dramatische Demonstration der Ausführung nativer 3D-Grafikmodule direkt im Browser ohne Plug-Ins. WebAssembly wurde seitdem von allen gängigen Browsern standardisiert und implementiert.

Die Entwicklung der Ausführung von .NET in WebAssembly wurde Ende 2017 angekündigt, 2020 wurden die Ergebnisse veröffentlicht, einschließlich Unterstützung in .NET 5 und darüber hinaus. Die Möglichkeit, .NET-Code direkt im Browser auszuführen, ermöglicht die Full-Stack-Webentwicklung mit .NET.

Blazor: Full-Stack-Webentwicklung mit .NET

Allein die Möglichkeit, .NET-Code in einem Browser auszuführen, bietet keine End-to-End-Erfahrung zum Erstellen clientseitiger Web-Apps. Hier kommt Blazor ins Spiel. Blazor ist ein clientseitiges Web-UI-Framework, das auf C# anstelle von JavaScript basiert. Blazor kann über WebAssembly direkt im Browser ausgeführt werden. Es sind keine Browser-Plug-Ins erforderlich. Blazor Alternativ können Apps serverseitig auf .NET ausführen und alle Benutzerinteraktionen über eine Echtzeitverbindung mit dem Browser verarbeiten.

Blazor verfügt über hervorragende Toolunterstützung in Visual Studio und Visual Studio Code. Das Framework enthält auch ein vollständiges UI-Komponentenmodell und verfügt über integrierte Einrichtungen für:

  • Formulare und Überprüfung
  • Abhängigkeitsinjektion
  • Clientseitiges Routing
  • Layouts
  • Debugging im Browser
  • JavaScript-Interoperabilität

Blazor hat viel mit ASP.NET Web Forms gemeinsam. Beide Frameworks bieten komponentenbasierte, ereignisgesteuerte, zustandsbehaftete UI-Programmiermodelle. Der hauptarchitektonische Unterschied besteht darin, dass ASP.NET Web Forms nur auf dem Server ausgeführt wird. Blazor kann auf dem Client im Browser ausgeführt werden. Aber wenn Sie aus dem Umfeld von ASP.NET Web Forms kommen, gibt es vieles in Blazor, das Ihnen vertraut vorkommen wird. Blazor ist eine natürliche Lösung für ASP.NET Web Forms-Entwickler, die nach einer Möglichkeit suchen, die clientseitige Entwicklung und die plattformübergreifende Zukunft von .NET zu nutzen.

Das vorliegende E-Book bietet eine Einführung in Blazor speziell für ASP.NET Web Forms-Entwickler. Jedes Blazor Konzept wird im Kontext analoger ASP.NET Web Forms-Features und -Praktiken vorgestellt. Am Ende dieses Buches haben Sie folgendes Verständnis:

  • Erstellen von Blazor-Apps
  • Wie funktioniert Blazor?
  • Wie Blazor mit .NET zusammenhängt.
  • Angemessene Strategien für die Migration vorhandener ASP.NET Web Forms-Apps zu Blazor, wo geeignet.

Erste Schritte mit Blazor

Der Einstieg mit Blazor ist einfach. Wechseln Sie zu https://blazor.net und folgen Sie den Links, um die entsprechenden .NET SDK- und Blazor-Projektvorlagen zu installieren. Außerdem finden Sie Anweisungen zum Einrichten der Blazor Tools in Visual Studio oder Visual Studio Code.