Slide 1

Slide 1 text

Blazor in .NET 5 Sanfte Evolution Christian Weyer https://thinktecture.com/christian-weyer @christianweyer CTO, Mitgründer @ Thinktecture AG

Slide 2

Slide 2 text

2 § Blazor Server und Blazor WebAssembly (WASM) § Blazor war schon immer als WASM-Variante für SPAs gedacht, geplant und realisiert § Für .NET-Entwickler Blazor in .NET 5 Sanfte Evolution Blazor: Webtechnologie für .NET-Entwickler

Slide 3

Slide 3 text

3 § Alles auf dem Server, nichts auf dem Client § Ignoriert das Web völlig § „X11 für .NET-Entwickler“ § Ziemlich verquere Technologiearchitektur, um… § einen strategischen Nachfolger für WebForms präsentieren zu können § den Zeitraum bis zu einem sinnvollen Zustand von Blazor WASM zu überbrücken § Probleme, exemplarisch § Dependency Injection funktioniert nicht wie gewohnt (v.a. bei EF) § Kritisches State-Management § Doppeltes Rendering beim Startup § Mikro-Architektur: saubere Schichtentrennung wird nicht erzwungen § Wenn man es möchte, ist der RAD-Vorteil von Blazor Server schnell weg Blazor in .NET 5 Sanfte Evolution Blazor Server: Server-side Rendering - ganz anders

Slide 4

Slide 4 text

4 § Offline-fähige Smart Clients im Browser § Fullstack .NET-Entwicklung End-to-End § Blazor WASM 3.2 basierend auf .NET Core 3.1 war „OK“ – eine typische V1 § Sanfte Evolution von Blazor WASM in .NET 5 § Auch weil WASM als Basistechnologie noch Potenzial ist § Evolutionsprozess von Blazor WASM fühlt sich ähnlich an wie der von Angular (2+) § Allerdings mit einer signifikanten Abhängigkeit zu WASM § Blazor WASM wird offiziell im Mai 2021 1 Jahr alt § Angular wird im September 2021 5 Jahre alt Blazor in .NET 5 Sanfte Evolution Blazor WASM: SPAs für .NET-Entwickler

Slide 5

Slide 5 text

5 Performance improvements Debugging improvements CSS isolation Microsoft Identity v2.0 and MSAL v2.0 New InputFile component WASM prerendering New InputRadio and InputRadioGroup components Trimming/linking improvements Component virtualization Browser compatibility analyzer ontoggle event support Lazy load assemblies Set UI focus in Blazor apps Updated globalization support Custom validation class attributes Form components support display name IAsyncDisposable support Catch-all route parameters JavaScript isolation and object references Blazor in .NET 5 Sanfte Evolution Überblick: Blazor-Neuerungen in .NET 5 https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0#blazor ✅ ✅ ✅ ✅ ✅

Slide 6

Slide 6 text

6 Blazor in .NET 5 Sanfte Evolution DEMO File Input Isolated JavaScript Interop IAsyncDispsoable Scoped CSS https://github.com/thinktecture/blazor-wasm-things-to-know/tree/main/VideoPlayer

Slide 7

Slide 7 text

7 Blazor in .NET 5 Sanfte Evolution DEMO WASM Prerendering https://github.com/thinktecture/blazor-wasm-things-to-know/tree/main/Prerendering

Slide 8

Slide 8 text

8 Blazor in .NET 5 Sanfte Evolution Blazor heute in .NET 5 Blazor WebAssembly ermöglicht SPAs mit C# und .NET Standard. Man muss Web, SPA, Security etc. kennen und können. Und auch JavaScript. Blazor ist jung und unreif. Technische Basis, Anwendungsgröße und fehlende Features sind zu beachten. Das Ökosystem ist am entstehen. Im Open- Source- wie im kommerziellen Umfeld. Das moderne Web mit PWA & Web Components funktioniert gut mit Blazor WASM zusammen. Vorsicht bei Blazor Server. Abstrahiert das Web auf unnatürliche Weise. Zustandsbehaftetes Ausführungsmodell.