Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Component Design: RenderFragment, Templated and Generic Components, CascadingValue, CSS Isolation and bUnit
Reusable Blazor components are built with RenderFragment and @typeparam; @key ties row state to the right item, ShouldRender cuts needless renders, and cascading values don't cross render mode boundaries. In the Bookstore panel we show a generic DataTable, an input that moves to the wrong row without @key, renders dropping from 42 to 4, a cascading value that is null in WebAssembly, QuickGrid, a Virtualize measurement, ::deep and bUnit tests, with real output.
What Changed in Blazor from .NET 8 to .NET 11: the Web App Model, RendererInfo, PersistentState, NotFound and .NET 11
.NET 8 moved Blazor to a single Web App model with render modes per component; .NET 9 and 10 filled its gaps, and .NET 11 brought more Static SSR, URL-based QuickGrid and circuit auto-pause. We upgraded the Bookstore panel to .NET 11: one using for [ValidatableType], the new BL0013/BL0016 analyzers, the removal of UseWebAssemblyDebugging, and .NET 10 LTS and .NET 11 STS support ending on the same day.