Page 10 of 15
Understand what ConfigureAwait(false) actually does, when to use it, and why library authors care about it more than application developers.
A practical breakdown of OAuth 2.0 and OpenID Connect in ASP.NET Core, covering authorization code flow, token handling, and common integration patterns.
Practical approaches to managing state in Blazor applications, from simple services to Fluxor.
Explore how the C# compiler transforms async methods into state machines, and what actually happens when you await a Task.
How to implement JWT bearer authentication in ASP.NET Core, from token generation to validation and refresh strategies.
How to replace exceptions with the Result pattern in .NET for predictable, composable error handling in your domain and application layers.
Implementing authentication flows and role-based authorisation in Blazor applications.
How Blazor's enhanced navigation intercepts link clicks for SPA-like transitions without full page reloads.
How to use the decorator pattern with .NET's DI container to add cross-cutting concerns like caching, logging, and retry logic without modifying existing code.
How to implement feature flags in .NET using Microsoft.FeatureManagement for safe deployments, A/B testing, and gradual rollouts.
Using SectionOutlet and streaming rendering to build responsive pages that load progressively.
How to structure a modular monolith in .NET that gives you the boundaries of microservices without the operational complexity.
Practical patterns for calling JavaScript from Blazor and .NET from JavaScript.
An introduction to event sourcing in .NET, covering event stores, aggregate rehydration, and projections with practical code examples.
How to use the saga pattern to coordinate multi-step business processes across services in .NET, with orchestration and choreography approaches.
Building robust forms with built-in validation using EditForm, DataAnnotations, and custom validators.
How to use the transactional outbox pattern to guarantee reliable message publishing alongside database writes in .NET.
Use Respawn to intelligently reset your test database between tests without the overhead of dropping and recreating it.
How to pass data down the component tree without prop drilling using cascading values.
How to use the specification pattern to encapsulate, compose, and reuse query logic in .NET applications.
A balanced look at the repository pattern in .NET, including when it helps, when it hurts, and what alternatives exist.
Practical patterns for testing asynchronous .NET code correctly, including common mistakes that lead to false-passing tests.
A deep dive into Blazor's component lifecycle methods and when each one fires.
How to implement value objects in C# to encode domain rules, eliminate primitive obsession, and make invalid states unrepresentable.
A hands-on guide to implementing the CQRS pattern in .NET using MediatR, with pipeline behaviours for cross-cutting concerns.