Slide 1

Slide 1 text

@phoenixhawk [email protected]

Slide 2

Slide 2 text

▪ Consultant bei der Thinktecture AG ▪ Spezialgebiete ▪ Flexible und skalierbare Backend-Architekturen ▪ Identity und Access Management ▪ Entwickler-Produktivität ▪ Softwarequalität ▪ Alles rund um .NET Core ▪ [email protected] ▪ Twitter: @phoenixhawk Advanced Blazor Server

Slide 3

Slide 3 text

4 ▪ Was ist Blazor Server? ▪ Unterschiede zu SPAs und Blazor WebAssembly ▪ Bewährtes und neues Know-How ▪ Blazor Server Pro & Contra ▪ Besonderheiten und wie man damit umgeht ▪ Fazit ▪ Fragen. Und Antworten. Advanced Blazor Server

Slide 4

Slide 4 text

Advanced Blazor Server

Slide 5

Slide 5 text

Advanced Blazor Server Browser Server HTML CSS JS Request Response Statische Dateien & Code

Slide 6

Slide 6 text

Advanced Blazor Server Browser Server HTML CSS JS Request Response Statische Dateien & Code API (Code) JS-Runtime Request Response State

Slide 7

Slide 7 text

Advanced Blazor Server 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 8

Slide 8 text

Advanced Blazor Server Browser Server JS-Runtime HTML CSS JS Request Response Statische Dateien & ASP.NET Core .NET Runtime C# App State Interop SignalR Code

Slide 9

Slide 9 text

Advanced Blazor Server

Slide 10

Slide 10 text

Advanced Blazor Server S Server .NET Runtime Blazor Application State DB Sockets Hardware SignalR State SignalR State SignalR S Browser S Browser S Browser

Slide 11

Slide 11 text

Advanced Blazor Server

Slide 12

Slide 12 text

13 • ASP.NET Core Infrastruktur (DI, Config, Hosting, Logging...) • ASP.NET Core MVC (Razor Pages) • Businesslogik mit .NET umsetzen • EF Core • HTML & CSS • UI-Framework der Wahl (Bootstrap, Material, Foundation, etc...) • JS (etwas, für interop) • „Situational Awareness“ oder „Wo passiert was?“ (Browser, SignalR, Server-rendered, Blazor-Serverside, welcher Scope?) Advanced Blazor Server

Slide 13

Slide 13 text

Advanced Blazor Server

Slide 14

Slide 14 text

Advanced Blazor Server

Slide 15

Slide 15 text

16 • Existierender .NET Code ist wiederverwendbar • Bestehende APIs müssen nicht „Webifiziert“ werden • Geringe Hardwareanforderungen für Clients • Nutzung von non-Browser APIs möglich • Ständige Netzwerkverbindung notwendig • Schnelles Netzwerk benötigt • Höhere Hardwareanforderungen für Server • Mikro-Architektur verleitet zum unsauberen Arbeiten Advanced Blazor Server

Slide 16

Slide 16 text

Advanced Blazor Server

Slide 17

Slide 17 text

18 • Doppeltes Rendering beim Startup • Authentication • Login / Logout etc. geschieht Server-Rendered im MVC-Teil, ausserhalb der Blazor-App • ASP.NET Core Cookie-Auth wird auch verwendet für SignalR Verbindung • Dependency Injection • Components haben keine Constructor-Injection • Scope „Scoped“ ist die Lebenszeit eines sog. Circuits • DB-Verbindungen sollten nicht in Komponenten gehalten werden • Mikro-Architektur • Saubere Schichtentrennung wird nicht erzwungen • State-Management Advanced Blazor Server

Slide 18

Slide 18 text

Advanced Blazor Server

Slide 19

Slide 19 text

Advanced Blazor Server

Slide 20

Slide 20 text

21 • Existierender .NET Code kann mit Blazor Server unmittelbar übernommen werden • Anbindung von „Legacy“-Protokollen und Systemen ohne Webifizierung ist möglich • Wann kann ich Blazor Server berücksichtigen? • Kontrollierte, stabile Netzwerk-Bedingungen (z.B. In-House, Cloud & Aussenstellen mit guter „lokaler“ Anbindung) • Begrenzte Anzahl von Benutzern, bekannte Nutzungsmuster • Geringere Anforderungen an saubere, skalierbare Mikroarchitektur • Wann eher nicht? • Unkontrollierbares Netzwerk (Mobile clients) • Stark schwankende, unbekannte Nutzungs-Muster • Anforderung Offline-Fähigkeit Advanced Blazor Server

Slide 21

Slide 21 text

22 • Blazor @ Thinktecture https://www.thinktecture.com/de/asp-dotnet-core-blazor • Blazor Introduction https://docs.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-3.1 • Material Design for Blazor https://www.matblazor.com/ • EF Core in Blazor https://www.youtube.com/watch?v=HNJYIqeBLQc • Authentication in Blazor https://docs.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore- 3.1 Advanced Blazor Server

Slide 22

Slide 22 text

@phoenixhawk [email protected]