Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Keynote: Blazor - Neues für WebAssembly in .NET...

Keynote: Blazor - Neues für WebAssembly in .NET 6.0

Mit der Version 6 liegt seit kurzem ein ganz besonderes .NET-Release vor: ein sogenanntes Long Term Support (LTS) Release. Da zu erwarten ist, dass eine größere Zahl an Nutzern auf .NET 6 umsteigen wird, glänzt es nicht so sehr mit neuen Features als vielmehr mit Tugenden, die es für den langfristigen Einsatz attraktiv macht. Grund genug, genauer hinzusehen.
Ergänzend zu den Workshops und den verschiedenen Sessions im Konferenzprogramm bieten unsere BASTA!-Experten einen kurzen und knackigen Einblick in ausgewählte Aspekte von .NET 6 und geben vor allem wertvolle Hinweise für den Einsatz in der Praxis. Vorhang auf für das neue .NET auch in Ihrem Projekt!

Christian Weyer

February 22, 2022
Tweet

More Decks by Christian Weyer

Other Decks in Programming

Transcript

  1. Keynote Blazor - Neues für WebAssembly in .NET 6.0 Christian

    Weyer https://thinktecture.com/christian-weyer @christianweyer Co-Founder & CTO
  2. 2 § “Suuuper: ich kann endlich mit C# und .NET

    Web-Apps & SPAs bauen!” § Blazor Server § “Terminal Server für Entwickler” § Keine wirkliche Web-App-Architektur § Blazor WebAssembly § “Schräges SPA-Konzept, mit einer Runtime auf einer Runtime” § C# & .NET noch nicht wirklich fit für den Browser § Aber: C# & .NET im Browser ist sooo cool J Blazor in .NET 6.0 Blazor – eine Art Hass-Liebe
  3. 3 § WebAssembly Deployment Layout (WASM) § Native Dependencies (WASM)

    § Ahead-of-Time (AOT) Kompilierung (WASM) Blazor in .NET 6.0 3 wichtige Features in Blazor in .NET 6.0 Alle Neuigkeiten: https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-6.0?view=aspnetcore-6.0#blazor
  4. 4 § Manche Firewalls und Proxies haben „Probleme“ mit binären

    Dateien (.dlls bei Blazor WASM) § Umbenennen der Dateien hilft nicht wirklich § Komplette Anpassbarkeit des Lade- und Bootvorgangs § JavaScript Initializers für das Customizen des Bootens von Blazor WASM § MSBuild-Erweiterbarkeit für Blazor Publish Extensions § Exemplarische Publish Extension für Paketierung mit MIME-Multipart- Bundles § Microsoft.AspNetCore.Components.WebAssembly.MultipartBundle § Clevere Firewalls und Viren Scanner checken aber auch das J Blazor in .NET 6.0 WebAssembly Deployment Layouts
  5. 5 • Native Abhängigkeiten müssen für die Einbindung in Blazor

    WASM kompiliert werden • Emscripten Compiler • C, C++, Rust und alle Sprachen, die nach Wasm kompilieren • P/Invoke-Aufrufe in den nativen Code • Ermöglicht bspw. vollständige Nutzung von SQLite mit EF Core in Browser-Apps (in Zukunft) • Tools Chain: dotnet workload install wasm-tools • Projektdatei: <NativeFileReference> auf nativen Code hinzufügen Blazor in .NET 6.0 Native Dependencies
  6. Blazor-WASM-Anwendung ohne AoT-Kompilierung Blazor in .NET 6.0 Ahead-of-Time (AoT)-Kompilierung Download

    Blazor-Runtime wird gestartet IL-Code wird interpretiert und ausgeführt Blazor-App-Code in IL (*.dll) Andere .NET-Bibliotheken in IL (*.dll) Blazor-Runtime in Wasm (blazor.webassembly.js, dotnet.wasm) Download 1a 1b 2 3 Web-App im Browser Server Client 6
  7. Blazor-WASM-Anwendung mit AoT-Kompilierung Blazor in .NET 6.0 Ahead-of-Time (AoT)-Kompilierung Download

    WASM-Code wird nativ ausgeführt (plus notwendige .dlls für Reflection u.ä.) Notwendige .dlls werden weiterhin heruntergeladen Blazor-App-Code in Wasm kompiliert Kombiniert mit Blazor-Runtime (blazor.webassembly.js , dotnet.wasm) Download 1a 1b 2 Web-App im Browser Server Client 7
  8. 8 Blazor in .NET 6.0 Ahead-of-Time (AoT) Kompilierung Effekte •

    .NET-Code wird direkt in optimierten Wasm-Code kompiliert • Leistungssteigerung bei CPU-intensiven Aufgaben, bspw. • Algorithmen (bspw. Bildbearbeitung) • Serialisierung/Deserialisierung • Kryptografie (bspw. Erzeugung SHA-256-Hashes) Wichtig zu wissen • Weiterhin werden .NET- Assemblys (*.dll) heruntergeladen • AOT-Release-Build-Dauer signifikant umfangreicher • Größe des Anwendungs- Deliverables wächst
  9. 9 § Exemplarische maximale Performancesteigerungen (im Vergleich zu non-AOT Blazor

    WASM) – alles Zirkaangaben § 5x schneller bei typischen Business-Logik-Routinen § 6x schneller bei Deserialisierung von JSON mit HttpClient § 10x schneller bei Deserialisierung mit gRPC statt HttpClient & JSON § 16x schneller bei Kryptografie-Algorithmen Blazor in .NET 6.0 Ahead-of-Time (AOT) Kompilierung Quellen: https://www.youtube.com/watch?v=X6FnfzUfrew https://twitter.com/jamesnk/status/1399496670958604292?lang=en
  10. 10 Blazor in .NET 6.0 Ausblick: Blazor in .NET 7.0

    Roadmap: https://github.com/dotnet/aspnetcore/issues/39504
  11. Danke! Bei Fragen kontaktieren Sie mich gerne Christian Weyer https://thinktecture.com/christian-weyer

    @christianweyer [email protected] Blazor Knowledge Hub: https://www.thinktecture.com/de/asp-dotnet-core-blazor/ 11