C# 9.0 Deep Dive: Records, Init-Only, and Patterns

C# 9.0 is arguably the most significant update to the language since LINQ in C# 3.0. It introduces a functional paradigm shift with Records, cementing immutability as a first-class citizen. In this article, we will go beyond the syntax and explore how these features change the way we design Domain Models and DTOs. The Problem […]

Read more โ†’

.NET 5 Migration: Real World Lessons

Migrating a large enterprise monolith to .NET 5 is different from upgrading a “Hello World” app. We share lessons learned from migrating 50+ microservices, including handling breaking changes in ASP.NET Core and Entity Framework. Breaking Change: JSON Serialization System.Text.Json is the default now. If you rely heavily on Newtonsoft.Json quirks, switching is painful. Target Framework […]

Read more โ†’

Azure Bicep: ARM Templates You’ll Actually Want to Write

Continuing our coverage of Project Bicep (now v0.3), this version introduces loops, conditional deployment, and modules, making it a viable replacement for ARM JSON in production. Loops Conditional Deployment Key Takeaways Bicep is transpiled to ARM JSON `bicep build main.bicep`. IntelliSense works for all Azure resources immediately. Much easier to read and review in Pull […]

Read more โ†’

Blazor WebAssembly Authentication with Azure AD

Securing a Single Page Application (SPA) can be tricky. Blazor WebAssembly makes it easier by providing built-in integration with OpenID Connect (OIDC) providers, including Azure Active Directory (AAD). Here is how to secure your app. App Registration First, register your app in the Azure Portal. 1. Create a “Single-page application” registration. 2. Set the Redirect […]

Read more โ†’

C# 9.0 Top-Level Programs: Reducing Boilerplate

C# has always been criticized for the “Hello World” ceremony. You needed a namespace, a class, and a static Main method just to print one line. C# 9 Top-Level Programs remove this requirement, bringing C# closer to scripting languages like Python for simple tasks and microservices. The New Entry Point Behind the Scenes The compiler […]

Read more โ†’

Entity Framework Core 5.0: Many-to-Many and More

EF Core 5.0 brings the feature everyone has been asking for: Many-to-Many relationships without a mapped join entity. It also introduces Split Queries to fix the “Cartesian Explosion” problem in complex joins. Many-to-Many You can now define navigation properties on both sides, and EF Core handles the middle table. Split Queries Instead of one giant […]

Read more โ†’