Sie sind hier: Wissen

Was ist Blazor ?

Blazor ist ein Single-Page-Web-Application (SPA) Framework im Browser von Microsoft.
Der vollständige Name ist "ASP.NET Core Blazor", denn Blazor ist ein Teil von ASP.NET Core.

Architekturmodelle

Es gibt fünf Architekturmodelle in Blazor:
  • Blazor Static Server Side Rendering: Multi-Page-Anwendungen wie bei ASP.NET Core MVC und Razor Pages, aber modernere Razor-Syntax und mehr Features (HTML-Streaming, Enhanced Navigation)
  • Blazor WebAssembly (alias Client Side Rendering): Die Ausführung von in C# geschriebenen .NET-Anwendungen direkt im Webbrowser war der ursprüngliche Gedanke. Die DLLs werden in Intermediate Language in den Browser geladen und dort interpretiert im Rahmen der WebAssembly Virtual Machine (Ein Ahead-of-Timer-Compiler zu WebAssembly-Bytecode ist schon lange in Arbeit und soll in .NET 6 erscheinen). Da es keinen direkten Zugang zum Document Object Model (DOM) des Browsers gibt, manipulieren Razor Components und C#-Code das Virtual DOM, welches Microsoft dann via JavaScript mit dem echten DOM synchronisiert.
  • Blazor Server (alias interactive Server Side Rendering): Hierbei läuft der C#-Code nicht im Browser, sondern im Webserver. Zwischen dem Virtual DOM und dem echten DOM liegt das Netzwerk. Microsoft synchronisiert beide via Blazor Pack-Protokoll über Websockets. Blazor Server funktioniert aber folglich nur bei kontinuierlicher Netzwerkwerkverbindung (Offline-Fähigkeit ist per se nicht möglich) und bietet auch keine gute Skalierbarkeit, denn der Zustand aller Komponenten und das Virtual DOM für alle Benutzer liegt auf dem Webserver. Eigentlich nur als Nebenprodukt von Blazor WebAssembly entstanden, hat Blazor Server dennoch inzwischen einige Anhänger gefunden, denn eine WebAPI-Middle-Tier braucht man hier nicht.
  • Blazor Desktop, eine hybride Anwendung. Eine Blazor-basierte Webanwendung ist einbettbar in eine Desktop-Anwendung oder mobile App. Die Blazor-Webanwendung läuft im gleichen Prozess wie die Rahmen-Anwendungen und teilt sich Zustände mit dieser. Es gibt keinen Webserver und keine WebAssembly-VM: Der .NET-Prozess selbst rendert die Razor Components und integriert einen Webbrowser-Steuerelement für die Darstellung.
  • Blazor MAUI ist eine innerhalb von .NET MAUI gehostete Blazor-Anwendung, die damit auf Windows, iOS, macOS, Android und Tizen als native App laufen kann.

Eigenschaften

Open Source (https://github.com/aspnet/Blazor/)
Verwendet C# und die Template-Syntax von ASP.NET Razor
Benutzeroberflächenbeschreibung in HTML und CSS

Architekturmodelle

Blazor Webassembly, alias: Client Side Blazor
Blazor Server, alias: Server Side Blazor

Zeitplan

  • Erste Vorschauversion war am: 22.3.2018
  • 28.4.2019: Blazor offizielles Projekt (nicht mehr experimentell)
  • Blazor Server erschienen in .NET Core 3.0 am 23.9.2019, Update in ASP.NET Core 3.1 am 3.12.2019
  • Blazor WebAssembly ist im Mai 2020 erschienen.
  • Seitdem jeden November neues Release zusammen mit dem modernen .NET

Blazor Server (Blazor Server App)

Zwischenzeitlicher Name: "Razor Components"
Enthalten in ASP.NET Core 3.0 seit Preview 2
Code läuft auf Server: .NET Core, C#, ASP.NET Core, Razor-Templates
Client: HTML, CSS, etwas JavaScript von Microsoft, optional etwas eigenes
Component = .razor-Datei, optional mit .razor.cs
Component Packages, auch mit Templated Components
Server hat ein Virtual-DOM des Browserinhalts für jeden angeschlossenen Webbrowser
Einzelne UI-Updates per ASP.NET SignalR (über Websockets)
"SPA light" (SPA-UI-Erlebnis)
Interaktion mit JS/TS + Zugriff auf Browser-APIs möglich

Client Side Blazor / Blazor Webassembly App

Basiert auf WebAssembly und Mono
Ausführung in Sandbox
Ist ein echtes, offline-fähiges Single-Page-Web-Application (SPA) Framework im Browser von Microsoft
Open Source [github.com/aspnet/Blazor]
Programmierung in C# und Template-Syntax von ASP.NET Razor
Laufen wirklich im Browser, ohne Plugin, ohne Transpilation!
Auf Basis WebAssembly und Mono
  • Mono CLR in WebAssembly kompiliert
  • Virtual DOM/Spiegel-DOM zwischen WASM<->JS
Benutzeroberflächenbeschreibung in HTML und CSS (nicht XAML!)
Ausführung in Sandbox
Kann, aber muss nicht mit ASP.NET Core auf Server eingesetzt werden

Blazor WebAssembly (Blazor Client App) vs. Blazor Server (Server Side Blazor)

Nachdem Blazor lange Zeit den Status "experimentell" hatte, ist nun in ASP.NET Core 3.0 (ein Teil von .NET Core 3.0) ein Teil des Projekts erschienen: Server Side Blazor. Der Name stellt aber schon klar, dass die Razor-Vorlagen und der übrige Programmcode auf dem Server läuft. Dennoch sieht der Benutzer der Webseite keine Seitenwechsel, sondern eine SPA. Dies erreicht Microsoft mit seiner JavaScript-Bibliothek blazor.server.js, die die Benutzerinteraktion per Websocket (realisiert via ASP.NET Core SignalR) zum Webserver funkt. Der Webserver unterhält eine Kopie des Document Object Models eines jeden angeschlossenen Webbrowser. Der Servercode manipuliert dieses Schatten-DOM und Blazor sendet alle Änderungen am DOM zum Browser, die blazor.server.js dann in die sichtbare Seite einbaut. Eine Server Side Blazor-Anwendung ist folglich weder offline-fähig noch gut skalierbar, da der Webserver entspricht viel Speicher- und Rechenlast hat. Dennoch zeigen erste Praxisprojekte, dass sich diese neue Architektur eignet für Webanwendungen mit kleinerer Benutzerzahl. Zudem besteht die Perspektive einer Umstellung auf Client-Side Blazor. Hier läuft dann der (fast) derselbe .NET-Programmcode auf Basis einer in Webassembly geschriebenen Variante von Mono im Webbrowser und belastet nicht mehr den Webserver. Zudem ist Client-Side Blazor offline-fähig. Von Client-Side Blazor gibt weiterhin eine Preview-Version und noch keinen verkündeten Erscheinungstermin.

Beratung & Support

Schulungen zu diesem Thema

 Moderne Web-Anwendungen mit Blazor (Blazor United und/oder Blazor SSR und/oder Blazor WebAssembly und/oder Blazor Server und/oder Blazor Hybrid)
 .NET Akademie: Blazor-Hands-On: Echte Single-Page-Web-Apps mit .NET und C# entwickeln (3-Tages-Agenda des öffentlichen Seminars)
 ASP.NET Core 8.0/9.0: komplettes Wissen - mit MVC, Razor Pages, Blazor, WebAPIs und gRPC
 .NET-Performance (Leistungsprobleme/Leistungsengpässe)
 Umstieg auf ASP.NET Core 8.0/9.0-Webanwendungen in .NET 6.0/7.0/8.0 (Umstellung/Migration von klassischen ASP.NET-Webanwendungen auf ASP.NET Core)
 .NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für das klassische .NET Framework und/oder das moderne .NET)
 Umstieg von .NET-Desktop-Entwicklung (WPF/Windows Forms) auf Webentwicklung (ASP.NET/ASP.NET Core + JavaScript/TypeScript mit Webframeworks wie Angular, Vue.js oder React)
 Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
 Lokalisierung/Globalisierung in .NET (System.Globalization)
 .NET Akademie: Datenbankprogrammierung mit Entity Framework Core (3-Tages-Agenda des öffentlichen Seminars)
 Umstieg auf .NET Multi-Platform App UI (MAUI) (Umstellung/Migration von Xamarin Forms-Apps auf .NET MAUI)
 ASP.NET Core WebAPI 8.0/9.0: REST Services/HTTP Services/Microservices
 .NET 5.0 - Änderungen und Neuerungen gegenüber .NET Core 3.x
 .NET 9.0 - Änderungen und Neuerungen gegenüber .NET 8.0
 .NET-Sicherheit (.NET Security)
 ASP.NET Webforms-Crashkurs (3 Tage)
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 .NET 6.0 - Änderungen und Neuerungen gegenüber .NET 5.0
 .NET-Entwickler-Update 2024
 ASP.NET Core 8.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 7.0
 ASP.NET Core 9.0 - Änderungen und Neuerungen gegenüber ASP.NET Core 8.0
 .NET für Einsteiger
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 .NET und C# für Umsteiger von C++
 .NET-Entwickler-Update 2025
 .NET-Entwickler-Update 2023
 Neuerungen in .NET Core 3.0/3.1 gegenüber Version 2.x (inkl. ASP.NET Core, Entity Framework Core, WPF und Windows Forms)
 .NET und C# für Umsteiger von Java
 .NET 8.0 - Änderungen und Neuerungen gegenüber .NET 7.0
 .NET 7.0 - Änderungen und Neuerungen gegenüber .NET 6.0
 Anfrage für eine individuelle Schulung zum Thema Blazor  Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema

  Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
  C# 13.0 Crashkurs
  Cross-Plattform-Apps mit .NET MAUI entwickeln
  Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
  .NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  .NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
  .NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
  Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
  C++20: Get the Details
  Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
  Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
  C# 12.0 Crashkurs
  App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
  Cross-Plattform-Apps mit .NET MAUI entwickeln
  Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
  C# 11.0 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  C++ Core Guidelines Explained: Best Practices for Modern C++
  App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
  Vue.js 3 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
  Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
  C# 10.0 Crashkurs
  Cross-Plattform-Apps mit Xamarin.Forms entwickeln
  Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
  PowerShell – kurz & gut
  C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin
  ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications
  Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
  ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.1
  C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.0
  Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.1/2.2
  Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
  C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
  Modernes C++: Concurrency meistern
  Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
  Programmierung in Python
  C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1
  Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0
  Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
  Angular - Das Praxisbuch zu Grundlagen und Best Practices
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
  Introducing Regular Expressions: JavaScript and TypeScript
  Introducing Web Development
  Introducing Bootstrap 4
  Programming Web Applications with Node, Express and Pug
  Einführung in TypeScript: Grundlagen der Sprache TypeScript 2
  Pug – Die Template-Engine für node.js
  Web-Programmierung mit Node, Express und Pug
  Windows PowerShell 5 – kurz & gut
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
  Windows PowerShell 5.0 - Das Praxishandbuch
  PHP 7 und MySQL: Von den Grundlagen bis zur professionellen Programmierung
  Windows Scripting Lernen
  .NET Praxis - Tipps und Tricks für .NET und Visual Studio
  Grundlagen für Web-Entwickler: Protokolle, HTML und CSS
  Bootstrap 3 - Stile und Komponenten
  Bootstrap 4 - Stile und Komponenten
  Einführung in JavaScript: ECMAScript 5
  Einführung in node.js
  express – Middleware für node.js
  JADE – Die Template Engine für node.js
  Reguläre Ausdrücke in JavaScript
  Moderne Datenzugriffslösungen mit Entity Framework 6
  C++ Standardbibliothek
  AngularJS: Moderne Webanwendungen und Single Page Applications mit JavaScript
  Microsoft SharePoint Server 2013 und SharePoint Foundation: Das umfassende Handbuch
  SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
  Moderne Webanwendungen mit ASP.NET MVC und JavaScript
  Windows PowerShell 4.0 - Das Praxishandbuch
  JavaScript: Das umfassende Handbuch, inkl. HTML5, JavaScript-Frameworks, jQuery, OOP
  C++11 für Programmierer
  C++ kurz und gut
  Microsoft ASP.NET 4.5 - Entwicklerbuch
  Moderne Webanwendungen mit ASP.NET MVC
  Verteilte Systeme und Services mit .NET 4.5
  Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
  Windows 8 für Administratoren
  Windows 8.1 - Das Handbuch (27. November 2013)
  Windows Store Apps entwickeln mit C# und XAML - Crashkurs
  .NET 4.5 Update
  Windows Scripting Lernen
  WPF 4.5 und XAML
  Datenbankprogrammierung mit .NET 4.5
  C++11: Der Leitfaden für Programmierer zum neuen Standard
  Verteilte Systeme und Services mit .NET 4.0
  Microsoft ASP.NET 4.0 mit C# 2010 - Entwicklerbuch
  Agile Software Engineering with Visual Studio
  Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
  Microsoft SharePoint Server 2010 und SharePoint Foundation 2010
  Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
  Microsoft Viusal C# 2010
  Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
  Programmieren mit dem ADO.NET Entity Framework
  .NET 4.0 Crashkurs
  Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
  .NET 4.0 Update
  Windows PowerShell 2.0 - Das Praxishandbuch
  Windows 7 im Unternehmen
  Agile Muster und Methoden
  Ajax
  ASP.NET 4.0
  ASP.NET 4.0 mit Visual C# 2010
  JavaScript
  PHP 5-Migration
  Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
  SQL Server 2008 R2: Das Programmierhandbuch. Inkl. ADO.NET 3.5, LINQ to Entities und LINQ to SQL
  Visual Basic 2010
  Windows PowerShell 2.0 - Crashkurs
  Windows Server 2008 R2
  Windows Scripting
  Windows Scripting Lernen
  Data Mining mit Microsoft SQL Server
  Windows 7 für Administratoren
  Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Entwicklerbuch
  .NET 3.5
  Essential PowerShell
  .NET 3.5 Crashkurs
  Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
 Alle unsere aktuellen Fachbücher  E-Book-Abo für ab 99 Euro im Jahr