Professionell Serverraum einrichten - Orescanin IT
Sicheren Serverraum einrichten - Orescanin IT
Notrufnummer 0231 3300 9001

Microsoft ASP.NET Blazor

Vom Framework zur offiziellen Produktreife

Endlich ist es soweit, dass von der .NET-Community seit dem 6. Februar 2018 angetriebene Projekt .NET Blazor wird in absehbarer Zeit von Microsoft als vollwertiges Produkt in den Markt kommen. Bis dato war es ein Framework und hatte den Status „experimentell“ und „Pre-Alpha“ und nun spricht Microsoft von Produktreife – doch wie sieht es in Wirklichkeit aus und was genau ist Blazor überhaupt?

Was ist Blazor ?  Nicht nur „Browser + Razor = Blazor“

  • Full-Stack-Webentwicklung mit .NET über WebAssembly
  • Benötigt kein Plug-In oder Code-Übersetzung
  • Funktioniert in allen modernen Browsern, einschließlich mobiler Browser

Fundamental lässt sich sagen, dass die bestehende .NET-Entwicklergemeinde in baldiger Zukunft Webprogrammierungen direkt im Browser mit .NET und C# durchführen werden, statt mit JavaScript/ TypeScript oder den gängigen JavaScript-Frameworks Angular, React, Aurelia und Co. zu hantieren – mit dem starken Vorteil, das Know-how der Entwickler und auch bestehenden Programmcode im Webbrowser wiederverwenden zu können.

Hier scheint Blazor eine echte Alternative zu JavaScript zu sein – oder doch nur ein weiterer, scheiternder Angriff auf die im gesamten Word Wide Web seit 1995 gängige Manipulationssprache für Browser-DOMS? So sieht es für Microsoft definitiv nicht aus. Denn im Gegensatz zu Silverlight, welches an der schleppenden Verbreitung des Browser-Plug-Ins scheiterte, bedarf es bei Blazor keinerlei Plug-In. Denn Blazor basiert auf WebAssembly, das in modernen Programmiersprachen wie C, C++, Go und Rust immer besser unterstützt wird.

WebAssembly als starkes Rückgrat von Blazor

Die Basistechnologie von Blazor, der in fast jedem Webbrowser geltende offene Standard WebAssembly (WASM) – ein Bytecode für das Web – der es erlaubt jeden Code, geschrieben in einer Programmiersprache, die zu WASM kompilierbar ist, wie beispielsweise die modernen Sprachen C#, F#, Python, Ruby, etc., in einer schnellen Geschwindigkeit in jedem Browser auszuführen. WASM ist vor allem für schnelle Downloads und maximale Ausführungsgeschwindigkeit optimiert. So kann ein Code, der beispielsweise in C++ geschrieben ist, kompiliert zum WebAssembly-Code über die JavaScript-Interoperabilität auf alle Funktionen des Browsers zugreifen.

Viele Programme lassen sich auch direkt in WASM, dank Compilern wie Emscripten, kompilieren. Ein über WASM ausgeführter .NET-Code, wird in einer ebenso vertrauenswürdigen Sandbox wie JavaScript ausgeführt, um böswillige Aktionen auf dem Clientcomputer zu verhindern. Nun ist klar, welches starke Fundament das Projekt WebAssembly, dass durch die führenden Entwickler von Browserengines, wie Mozilla, Microsoft, Google und Apple voran getrieben wird, für Blazor ist. Doch was sind die Vorteile bei der Verwendung von Blazor zur Entwicklung von Browser-Applikationen?

Warum sollte Blazor für Web-Apps verwendet werden?

  • stabil & produktiv: .NET Standard, MSBuild Engine
  • schnell, skalierbar & zuverlässig: .NET Core für Backend-Dienste, die Verwendung von .NET als Full-Stack-Lösung erleichtert die Skalierung der Web-Anwendung
  • moderne innovative Sprachen: wie C#, F# & Razor etc.
  • erstklassige Entwicklertools: Visual Studio, IntelliSense

Interaktive Web-UIs mit C# statt JavaScript erstellen

Blazor braucht kein JavaScript und setzt stattdessen allein auf C# und die bewährte Razor-Syntax für die Entwicklung von HTML-Strukturen. So werden Web-Anwendungen mit einem .NET-Compiler in Standard .NET-Bytecode kompiliert, um so direkt im Browser ausgeführt zu werden. Dies wird durch die .NET Runtime Mono ermöglicht, die mithilfe von WASM, als vollwertige .NET-Anwendung, direkt im Browser ausgeführt wird. Somit können .NET-Entwickler den gesamtem Stack mit den gleichen .NET-Technologien und Werkzeugen bedienen und zusätzlich läuft über Mono eine vollwertige .NET-Runtime im Browser, wodurch Entwickler auch auf bewährte Lösungen und Pakete aus dem .NET-Ökosystem zurückgreifen können.

Es lässt sich klar sagen, dass Blazor eine echte Alternative zu JavaScript ist und die .NET-Entwicklergemeinde sich auf eine performantes und bald vollständig, ausgereiftes Tool freuen kann, um Single Page Applications (SPAs) direkt im Web-Browser auf Basis von .NET und C# zu implementieren. Blazor ist in der aktuellen Visual Studio Version 2019 nicht enthalten, die Blazor-Erweiterung und -Templates lassen sich jedoch einfach im Visual Studio Market Place downloaden und installieren. Zu letzt hier die wichtigsten Eigenschaften von Blazor zusammengefasst:

Was sind die wichtigen Eigenschaften von Blazor?

  • umfangreiches Komponentenmodell
  • vielfältige Layouts zur Vermeidung inkonsistenter Inhalte
  • .NET-Ökosystem: Nutzung der vorhandenen Ökosysteme von .NET-Bibliotheken dank .NET-Standard
  • unterstützt Routing (auch client-seitiges)
  • Dependency Injection: Verwendung integrierter Dienste in der Anwendung, indem sie in Komponenten einfügt werden und so auch benutzerdefinierte Dienste registriert und über DI in der gesamtem App verfügbar gemacht werden
  • JavaScript Interoperabilität: Veränderungen am Code, werden einfach durch die Aktualisierung im Browser, automatisch im Hintergrund erstellt
  • Direktes Debugging im Browser möglich
  • unterstützt Veröffentlichungen der Web-App
  • Trimmen der Anwendungsgröße: Mit Verwendung von .NET IL Linker können, durch trimmen nicht verwendeter IL, bis zu 50% der .NET Core App-Größe reduziert werden
  • Durch das Zurückgreifen auf eine Emulation via asm.js wird das Arbeiten mit Blazor auch in älteren Browsern, die kein WebAssembly unterstützen, ermöglicht
  • Reichhaltige IntelliSense, Werkzeuge und Bearbeitungserlebnisse

Weitere interessante Artikel