Sie sind hier: Wissen
Begriff ASP.NET Core Blazor 5.0
Abkürzung Blazor 5.0
Eintrag zuletzt aktualisiert am 15.11.2020

 Zur Stichwortliste unseres Lexikons

Was ist ASP.NET Core Blazor 5.0 ?

Blazor 5.0 ist im Rahmen von .NET 5.0 am 10.11.2020 als Nachfolger von Blazor Server 3.1 und Blazor WebAssembly 3.2 erschienen. Erstmals sind Blazor WebAssembly und Blazor Server, die bisher immer getrennt veröffentlicht wurden, zusammen erschienen und tragen die gleiche Versionsnummer.

Ab .NET 5.0 werden Blazor WebAssembly und Blazor Server jeweils zusammen mit einer Veröffentlichung einer neuen .NET-Version erscheinen und dann beide jeweils die entsprechende .NET-Versionsnummer tragen. 2021 wird dann Blazor 6.0 in .NET 6.0 folgen. Danach kommen weitere Hauptversionen einmal pro Jahr (angekündigt jeweils im November des Jahres). Innerhalb des Jahres kann es Unterversionen geben.
Hinweis: Für Blazor 5.0 brauchen Sie Visual Studio Version 2019 / 16.8 oder höher.

Blazor WebAssembly-basierte Anwendungen melden sich in .NET 5.0 (seit Preview 7) nun nicht mehr mit Mono 6.13.0 (3.2-wasm/1a6e64a9381), sondern mit ".NET 5.0.0", wenn man System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription abfragt. Dies liegt daran, dass Blazor WebAssembly nun die Klassenbibliotheken von .NET 5.0 verwendet. Die Runtime ist aber immer noch Mono, was man beim Kompilieren sieht: " monowasm_runtimeready".

Hinweis: Die Angleichung der Klassenbibliotheken bedeutet aber nicht, dass nun alle .NET-Klassen in Blazor WebAssembly funktionieren: Weiterhin wirken die Einschränkungen der Browser-Sandbox und der WebAssembly-VM. So sind zum Beispiel Dateisystemzugriffe, Multi-Threading, direkte Datenbankzugriffe und andere Netzwerkprotokolle als HTTP/HTTPS weiterhin nicht erlaubt.

Zur Leistungssteigerung von Blazor WebAssembly hat Microsoft das Komponentenrendering, die JSON-Serialisierung und die Interoperabilität mit JavaScript in Preview 7 beschleunigt. Neue Funktionen gibt es erst seit .NET 5.0 Preview 8.

Wichtigste Neuerungen für Blazor WebAssembly 5.0 ist die in der ersten (hatte die Versionsnummer 3.2) schmerzlich Möglichkeit, Anwendungsteile nachzuladen. Lazy Loading von DLLs aus referenzierten Projekten ist nun möglich. Beim Rendering in Blazor WebAssembly-basierten Anwendungen kann der Entwickler nun wählen, ob eine statische HTML-Seite vorab erzeugt werden soll. Microsoft hat die Ausführungsgeschwindigkeit von Blazor WebAssembly insgesamt deutlich verbessert (vgl. Leistungsmessungen im Blogeintrag [https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-1/]).

Alle weiteren Verbesserungen betreffen auch Blazor Server. So kann der Entwickler JavaScript-Code, der bisher nur global eingebunden werden konnte, nun bei Bedarf nachladen. Razor Components können jeweils eine eigene CSS-Datei besitzen, die nur für die jeweilige Komponente gilt.
Für beide Blazor-Varianten gibt neue Steuerelemente: <InputRadio> und <InputRadioGroup> sowie <InputFile> zum Dateiupload. Auch kann man nun den Fokus auf ein HTML-Element über ElementRef.FocusAsync() setzen; bisher brauchte man dazu JavaScript. Mit dem Zusatzpaket Microsoft.AspNetCore.Components.Web.Extensions kann man auch die Inhalte des <head>-Tags (z.B. Title, Link und Meta) beeinflussen. Die Schnittstelle IAsyncDisposable wird unterstützt. Neu ist auch die Schnittstelle IComponentActivator. Das Paket Microsoft.AspNetCore.ProtectedBrowserStorage, das es schon seit August 2019 als "experimentelles" Paket gibt, soll offiziell einsatzreif werden (aber nur für Blazor Server).

Blazor 5.0 bietet seit "Release Candidate 1" eine Komponente <Virtualize>, die aus einer Objektmenge nur die sichtbaren Elemente rendert. Ebenso unterstützt Blazor nun das Browser-Ereignis ontoggle für das HTML-Tag <details>.

Blazor WebAssembly 5.0 und Blazor Server 5.0 unterstützen Hot Reloading (Automatisches Neukompilieren und Reload im Browser bei Änderungen) per Kommandozeilenbefehl dotnet watch run.

Weitere Funktionen, die für Blazor 5.0 ursprünglich geplant waren (z.B. AOT-Kompilierung, SVG-Unterstützung, Pflichtparameter in Komponenten), wurden leider gestrichen. Die AOT-Kompilierung soll in Blazor 6.0 kommen: "For .NET 6, we expect to ship support for ahead-of-time (AoT) compilation to WebAssembly, which should further improve performance." [https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-1].

Beratung & Support

Schulungen zu diesem Thema

 Anfrage für eine individuelle Schulung zum Thema ASP.NET Core Blazor 5.0 Blazor 5.0  Gesamter Schulungsthemenkatalog