Slide 1

Slide 1 text

Patrick Jahr https://thinktecture.com/patrick-jahr Session Blazor WebAssembly in .NET 8: Game Changer für .NET SPAs? @jahr_patrick Developer Consultant

Slide 2

Slide 2 text

Thema Sprecher Datum / Uhrzeit Blazor: Server, WebAssembly und Hybrid – ein Wegweiser Sebastian Gingter, Patrick Jahr DI, 26. September 2023, 10.45 bis 11.45 Automatisiertes Testen von Blazor- Anwendungen Dr. Holger Schwichtenberg DI, 26 September 2022, 12.15 bis 13.15 Blazor WebAssembly in .NET 8: Game Changer für .NET SPAs? Patrick Jahr DI, 26. September 2023, 15.30 bis 16.30 Was sind denn das für Zustände? Praxisnahes State Management in Blazor WebAssembly Sebastian Gingter DI, 26. September 2023, 17.00 bis 18.00 Special Day Blazor

Slide 3

Slide 3 text

Hello, it’s me. Patrick Jahr Developer Consultant @ Thinktecture AG E-Mail: [email protected] Twitter: @jahr_patrick Slides: https://thinktecture.com/patrick-jahr Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Patrick Jahr

Slide 4

Slide 4 text

Flashback SPA Bundle MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 5

Slide 5 text

Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Flashback SPA (Angular, React, Vue …) Browser Server HTML CSS JS Request Response Statische Dateien API (Code) JS-Runtime Request Response State

Slide 6

Slide 6 text

Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? .NET SPA mit Blazor WebAssembly Browser Server JS-Runtime WASM-Runtime .NET Runtime C# App HTML CSS JS Request Response Statische Dateien & ASP.NET Core State HTML CSS JS .NET & IL Interop API (Code)

Slide 7

Slide 7 text

Flashback SPA Packaging MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 8

Slide 8 text

.NET 7 Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Bundle

Slide 9

Slide 9 text

.NET 8 Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Bundle

Slide 10

Slide 10 text

Flashback SPA Packaging MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 11

Slide 11 text

Render Blazor Components in ASP.NET Core MVC Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Mixed Mode

Slide 12

Slide 12 text

DEMO Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 13

Slide 13 text

Flashback SPA Packaging MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 14

Slide 14 text

Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Server Side Rendering Request - http://url/page1 Response - HTML Page Request - http://url/page2 Response - HTML Page

Slide 15

Slide 15 text

Stream Rendering Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Rendermodes Loading… Request - http://url/page1 1. Response HTML Page with placeholder content Request - http://url/page1 2. Response HTML for just the Content

Slide 16

Slide 16 text

DEMO Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 17

Slide 17 text

Server Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Rendermodes Request - http://url/page1 Response HTML Payload and runtime to establish SignalR connection and manage DOM SignalR Connection Any events are sent to the server and it Sends back data that is inserted into the DOM

Slide 18

Slide 18 text

DEMO Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 19

Slide 19 text

WebAssembly Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Rendermodes Request - http://url/page1 Response HTML Page, .NET and WebAssembly runtime API Call via HttpClient Results are processed on the client. Components detect changes and update the DOM JSON Response

Slide 20

Slide 20 text

DEMO Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 21

Slide 21 text

Auto Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Rendermodes Request - http://url/page1 Downloads WebAssembly Assets in the background Frist Visit Subsequent Visits Rendered using Blazor WebAssembly Rendered using Blazor Server API Call via HttpClient Results are processed on the client. Components detect changes and update the DOM JSON Response SignalR Connection

Slide 22

Slide 22 text

DEMO Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 23

Slide 23 text

Flashback SPA Packaging MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 24

Slide 24 text

until .NET 7 • Firewall problems due to the necessary DLLs that need to be downloaded • Slow startup time due to the big size of the application • Old OIDC Client and Authentication reloading hell • … Will this all be a thing of the past with .NET 8? Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Still missing

Slide 25

Slide 25 text

Flashback SPA Packaging MixMode RenderModes Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 26

Slide 26 text

• Spoiler: Currently not yet • Firewall problem solved • SSR only partially solves the problem of loading time but no authentication possible at the moment • Unfortunately, there are still issues that have not been solved even with .NET 8 Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Game Changer für .NET SPAs?

Slide 27

Slide 27 text

• Authentication Stack: https://github.com/dotnet/aspnetcore/issues/40764 • Multithreading: https://github.com/dotnet/aspnetcore/issues/48768 • State Handling with Server Side Rendering Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs? Open Issues

Slide 28

Slide 28 text

Flashback SPA Packaging MixMode RenderMo des Still missing Game Changer? Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 29

Slide 29 text

Q&A Blazor WebAssembly in .NET 8 Game Changer für .NET SPAs?

Slide 30

Slide 30 text

https://www.thinktecture.com/ueber-uns/karriere/ Dankeschön! Patrick Jahr https://thinktecture.com/patrick-jahr thinktecture-labs/basta-2023-game-changer-blazor-wasm