Join 74,000+ subscribers accelerating their skills every week
One practical tip every Saturday
.NET best practices and actionable advice
Software Architecture deep dives and fresh ideas








Join thousands of software engineers

Previous issues of The .NET Weekly

Building Dapr Workflows in .NET With Aspire
June 13, 2026
Long-running business processes are hard to get right. Dapr Workflow lets you write them as plain C# code that survives crashes and restarts, and Aspi...

DRY Is the Most Misunderstood Rule in Programming
June 6, 2026
DRY was never about code that looks the same. It's about knowledge. Most of the tangled abstractions I've had to unwind started as a well-meaning atte...

Union Types Are Finally Coming to C#
May 30, 2026
For years we faked union types with marker interfaces, base classes, and the OneOf library. C# 15 finally bakes them into the language - and here's a ...

How to Scale Long-Running API Requests
May 23, 2026
When a single API call takes minutes to finish, it punishes both your users and your server. Here's the progression I walk through to turn long-runnin...

When Your Use Case Half-Succeeds: Designing for Partial Failure in .NET
May 16, 2026
A use case isn't a transaction. The moment it touches more than one system, you are dealing with partial failure. Here's how I classify side effects a...

API Versioning Should Be Your Last Resort
May 9, 2026
Most teams reach for v2 too early because they don't have a contract evolution strategy. Here's the API change management approach I prefer: evolve co...

What Invariants Are (and Why a Domain Model Is the Best Place to Enforce Them)
May 2, 2026
Most 'DDD-ish' code I review enforces business rules everywhere except where it should: in the model itself. The same rule ends up duplicated across h...

The Test Pyramid Is a Lie (and What I Do Instead)
April 25, 2026
The test pyramid made sense when integration tests meant a shared database server and a 20-minute build. It doesn't match how I build .NET systems in ...

Why I Switched to Primary Constructors for DI in C#
April 18, 2026
I resisted primary constructors for a while. They felt like a shortcut that would cost me later. But after using them across several projects, I'm sol...

Implementing the Saga Pattern With Wolverine
April 11, 2026
Long-running business processes don't fit neatly into a single request. Wolverine's Saga support gives you a convention-based approach to orchestratin...
Subscribe to the Newsletter
Join 74,000+ readers of The .NET Weekly for practical tips and resources to improve your .NET and software architecture skills.