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

BASTA! Spring 2021 - Blazor Server

BASTA! Spring 2021 - Blazor Server

Slides to my Talk about Blazor Server @ BASTA! Spring 2021

Sebastian Gingter

February 18, 2021
Tweet

More Decks by Sebastian Gingter

Other Decks in Programming

Transcript

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

    Statische Dateien & Code API (Code) JS-Runtime Request Response State
  4. 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)
  5. 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
  6. Advanced Blazor Server S Server .NET Runtime Blazor Application State

    DB Sockets Hardware SignalR State SignalR State SignalR S Browser S Browser S Browser
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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