Angular, Blazor oder Razor? Wahl des Web-Frameworks.

wahl des web frameworks

Die Auswahl an Web-Frameworks für eine ASP.NET Anwendung ist mittlerweile recht umfangreich.

Neben reinen Web-Frameworks wie Angular, Svelte, React oder Vue.js, die ausschließlich die Client Seite behandeln und in nativen Web Code (HTML, JavaScript und CSS) übersetzt werden, bietet ASP.NET die Möglichkeit, klassische Webseiten mit MVC und Razor oder eine SPA mit Blazor zu entwickeln. Bei Blazor gibt es noch die Unterscheidung von serverseitigen Blazor mit Echtzeitupdates und clientseitigen und offlinefähigen Blazor als WebAssembly (WASM).


Die folgenden Fragen sollen Ihnen bei der Entscheidungsfindung helfen:

Soll die Anwendung eine einfache Datenverwaltung sein, mit der Daten eingegeben, bearbeitet, gelöscht und ausgelesen werden können?

Ja, dann ist eine ASP.NET MVC Anwendung mit Razor eine geeignete Auswahl, da mit wenig Code, effektiv eine Anwendung entwickelt und bereitgestellt werden kann.

Wenn die Anwendung zudem offlinefähig sein soll, dann wäre Blazor WebAssembly (WASM) das Mittel der Wahl.

Bei Echtzeitupdates unter den Clients, sodass Änderungen von anderen Benutzern, ohne Page Reload gleich sichtbar werden, dann wäre der Einsatz von Blazor Server sinnvoll.

Handelt es sich um ein umfangreicheres Projekt, dass um die reine Datenverwaltung hinausgeht und umfangreichere Geschäftsabläufe in der UI sichtbar machen soll?

Dann ist der Einsatz von React oder Angular sinnvoll, da Sie eine große Community mit umfangreichen Dokumentationen und Bibliotheken bieten, die für größere Projekte benötigt werden. Auch wenn die Lernkurve steiler als bei Vue.js oder Svelte ist, welche besonders durch ihre kurzen Ladezeiten und einfachen Einstieg glänzen, wird sich der Einsatz lohnen, wenn die Anwendung über Jahre erweitert und gewartet werden muss.

Besonders im Hinblick auf Wartbarkeit, Typensicherheit, State Management und Skalierbarkeit über Teamgrenzen hinweg, eignet sich Angular besonders für größere Teams und Unternehmen.

React ist gut für kleinere Teams und StartUps geeignet ist, welche auf Typensicherheit verzichten können.

Die Offlinefähigkeit und Echtzeitanbindung über Websockets (SignalR) ist genauso wie bei Blazor, sowohl bei React als auch bei Angular möglich.

Ist Blazor nicht auch für größere Projekte geeignet?

Blazor kann genauso wie Angular für größere und komplexere Projekte verwendet werden. Besonders wenn das Team bereits mit C# vertraut ist und sich nicht extra in TypeScript einarbeiten möchte, ist das praktisch. Ebenso kann Codelogik in der UI wiederverwendet werden und dadurch die Entwicklungszeit verkürzt werden.

Allerdings entstehen durch die enge Kopplung an den Server, bei komplexeren Vorhaben, Einbußen bei der Performance. Bei komplexen UI Elementen stoßt WebAssembly schnell an Grenzen, da es von den Browsern noch nicht ausreichend unterstützt wird. Bei Blazor Server laufen alle Interaktionen über den Server was es zwangsläufig langsamer bei vielen UI Aktionen macht.

Selbst Microsoft setzt stand jetzt bei seinen eigenen Webseiten auf Angular (Teams) und React (xBox Webseite), obwohl Blazor bereits seit 6 Jahren zur Verfügung steht.

Nach oben scrollen