Moving from Blazor Server to the Unified .NET 8 Blazor WebApp Model
During my time at Danske Commodities, one of my core responsibilities was migrating an internal monitoring application from Blazor Server to the .NET 8 Blazor WebApp architecture while integrating a new UI component library.
Key Architectural Differences
- Explicit Render Mode Boundaries: In classic Blazor Server, the entire application runs over a persistent SignalR circuit by default. Moving to the .NET 8 Blazor WebApp model (
App.razoras the root HTML document with per-page or per-component@rendermode InteractiveServer) makes interactivity boundaries explicit and allows static server-rendered shells where real-time circuits are unnecessary. - Component Library Migration Strategy: Swapping out a UI component library across a live monitoring platform is easiest when data grids, dialogs, and filter controls are wrapped behind domain-focused shared components rather than coupled directly to third-party parameters on every page.
- Keeping Data Access Fast with Dapper & T-SQL: For high-frequency monitoring views, pairing lightweight Dapper queries and well-indexed T-SQL stored procedures/queries with scoped service lifetimes avoids
DbContextconcurrency pitfalls inside interactive Blazor circuits.