Black Belt Blazor

September 18, 2024

By: Shaun Walker

On September 5, 2024 Devessence Inc hosted a webinar titled Black Belt Blazor. The session provided a deep dive into some of the more challenging aspects of Blazor. The presentation was primarily focused on Blazor but was inspired by lessons learned while developing Oqtane. The full recording is available here and the source code for the demonstrations has been released as an open source project here.

Scenarios Covered

  • Button Link - using links rather than button onclick events
  • Button Form - using a standard form rather than button onclick events
  • Anchors - inconsistent behavior of internal page references, sometimes fragments or hashes
  • Simple Form - simple form with multiple fields
  • Advanced Form - advanced form with dependencies between fields and onchange events
  • Multiple Forms - strange behavior of using multiple forms on a page
  • Progress Indicator - displaying a progress indicator using StreamRendering
  • Scroll Position - inconsistent scroll position behavior navigating between pages, and a simple solution
  • NavigateTo - calling NavigationManager.NavigateTo() throws an exception in Visual Studio
  • OnAfterRender - only called in interactive rendering
  • Cascading Parameter - does not cross render mode boundaries from static to interactive components
  • Scoped Service - does not cross render mode boundaries from static to interactive components
  • Pass State - how to pass Cascading Parameters and Scoped Services across render mode boundaries
  • ViewState - demonstration of how Blazor injects state into your page when cross render mode boundaries
  • Serialization - demonstration of how class which are not serializable can throw exceptions when cross rendering mode boundaries
  • Dual Service - technique for data access which supports both Server and Client (HttpClient) scenarios dynamically at runtime using dependency injection
  • Prerendering - disabling prerendering allows you to avoid OnInitialized being called twice for each component
  • JavaScript - how to utilize JavaScript in both static and interactive components



Share Your Feedback...
Do You Want To Be Notified When Blogs Are Published?
RSS