Patrick Westerhoff adesso AG

„Blazor ist ein Webframework, das auf die üblichen Webtechnologien verzichtet. Das macht es sicherlich interessant für Entwickler, die wenig Kontakt mit JavaScript haben oder sich generell mehr im .NETÖkosystem zu Hause fühlen.“

Blazor ist ein neues experimentelles Webframework von Microsoft, das dank neuester Browsertechnologien auf einer .NET Runtime im Browser läuft und völlig auf JavaScript verzichtet. Doch was steckt eigentlich dahinter, wie funktioniert es, und hat das Experiment eine Zukunft?

Mit Blazor wählt Microsoft einen völlig neuen Ansatz, was die clientseitige Entwicklung angeht. Während Webframeworks sonst eigentlich immer direkt JavaScript nutzen oder eine verwandte Sprache während des Build-Prozesses in JavaScript transpilieren, verzichtet Blazor vollständig auf JavaScript. Stattdessen setzt es allein auf C# und die bewährte Razor-Syntax für die Entwicklung von HTML-Strukturen. Entwickelte Anwendungen werden dann mit einem normalen .NETCompiler in Standard-.NET-Bytecode kompiliert, der dann direkt im Browser ausgeführt wird.

Möglich ist das durch eine Version der Mono .NET Runtime, die mithilfe von WebAssembly im Browser ausgeführt wird. Dadurch läuft die Anwendung als vollwertige .NET-Anwendung im Browser. Somit können .NET-Entwickler den gesamten Stack mit den gleichen .NET-Technologien und -Werkzeugen bedienen und sind nicht mehr nur auf das Backend beschränkt. Da mit Mono eine vollwertige .NET Runtime im Browser läuft, können Entwickler auch auf bewährte Lösungen und Pakete aus dem .NET-Ökosystem zurückgreifen. Im Umkehrschluss bedeutet das allerdings, dass für die Ausführung einer .NET-Anwendung auch im Brows er verschiedene Abhängigkeiten geladen werden müssen.

So laden Blazor-Anwendungen beispielsweise auch Assemblies wie die mscorlib.dll, wodurch in Summe ein paar Megabytes heruntergeladen werden müssen, bevor die Anwendung laufen kann.

Da Blazor sich allerdings noch in einem sehr frühen Entwicklungsstatus befindet, ist damit zu rechnen, dass früher oder später auch etwas daran geändert wird. Das Blazor-Team erklärt selbst immer wieder, dass es mit der Situation aktuell nicht zufrieden ist, obwohl solche großen Assemblies durch geeignete Caching-Strategien und CDNs auf lange Sicht weniger ins Gewicht fallen würden.

WebAssembly als Basistechnologie

Blazor funktioniert dank der Tatsache, dass die .NET Runtime Mono im Browser ausgeführt werden kann. Möglich wird das durch WebAssembly, bei dem es sich um ein Bytecode-Format handelt, das direkt von Browsern ausgeführt werden kann. WebAssembly besitzt keine Garbage Collection, ist statisch getypt und nutzt ein lineares Speichermodell, wodurch Programme in WebAssembly generell schneller ausführbar sind als beispielsweise dynamisches JavaScript. Zudem ist es so gebaut, dass Browserhersteller die Ausführung weiter optimieren können und somit eine nativ-ähnliche Performance möglich ist. Dank Compilern wie Emscripten lassen sich viele Programme auch direkt in WebAssembly kompilieren.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 10.18 - "Volle Cloud voraus?"

Alle Infos zum Heft
579857786Microsoft Blazer: Razor Syntax und C# im Browser
X
- Gib Deinen Standort ein -
- or -