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

Blazor Server: Mögliche Architekturalternative zu SPAs?

Blazor Server: Mögliche Architekturalternative zu SPAs?

Slides für mein Webinar: Blazor Server: Mögliche Architekturalternative zu SPAs?

Sebastian Gingter

December 16, 2020
Tweet

More Decks by Sebastian Gingter

Other Decks in Programming

Transcript

  1. 3 ▪ 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. Blazor Server
  2. Blazor Server Browser Server HTML CSS JS Request Response Statische

    Dateien & Code API (Code) JS-Runtime Request Response State
  3. 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)
  4. Blazor Server Browser Server JS-Runtime HTML CSS JS Request Response

    Statische Dateien & ASP.NET Core .NET Runtime C# App State Interop SignalR Code
  5. Blazor Server S Server .NET Runtime Blazor Application State DB

    Sockets Hardware SignalR State SignalR State SignalR S Browser S Browser S Browser
  6. 12 • 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?) Blazor Server
  7. 15 • 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 Blazor Server
  8. 17 • 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 Blazor Server
  9. 20 • 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 Blazor Server
  10. 21 • 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 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 Blazor Server