Improve Your .NET
& Software Architecture

Join 70,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

Profile picture
Profile picture
Profile picture
Profile picture
Profile picture
Profile picture
Profile picture
Profile picture

Join thousands of software engineers

Previous issues of The .NET Weekly

How to Extract Structured Data From Images Using Ollama in .NET

February 14, 2026

Vision models can do more than describe images. I used Ollama and Microsoft.Extensions.AI to extract structured receipt data into strongly typed C# ob...

Integrate Keycloak with ASP.NET Core Using OAuth 2.0

February 07, 2026

Learn how to integrate Keycloak with your .NET 10 API using Docker, Swagger UI with OAuth 2.0 Authorization Code flow, and JWT validation.

Containerize Your .NET Applications Without a Dockerfile

January 31, 2026

Learn how to containerize .NET applications without writing a single line of Dockerfile. The .NET SDK has built-in support for publishing directly to ...

A Practical Demo of Zero-Downtime Migrations Using Password Hashing

January 24, 2026

A practical demo of the zero-downtime migration pattern: run old + new password hash formats side-by-side, migrate users on login, and remove legacy s...

Solving the Distributed Cache Invalidation Problem with Redis and HybridCache

January 17, 2026

Learn how to solve the distributed cache invalidation problem in .NET 9 by implementing a Redis Pub/Sub backplane to synchronize HybridCache instances...

Solving Message Ordering from First Principles

January 10, 2026

Per-aggregate ordering is what we really want. But queues with competing consumers make it surprisingly easy to break. This article shows how the “fix...

The Urge to Build Something

January 03, 2026

Looking at my contribution graph now, I can see the whole journey mapped out in squares of green. The startup dreams. The pivot to teaching. The thous...

How to Build a High-Performance Cache Without External Libraries

December 27, 2025

Learn how to build a high-performance cache from scratch in .NET, moving from a simple ConcurrentDictionary to an optimized keyed-locking system. This...

Server-Sent Events in ASP.NET Core and .NET 10

December 20, 2025

ASP.NET Core 10 introduces native Server-Sent Events as a lightweight, HTTP-native alternative to SignalR for simple one-way real-time updates like da...

The New .slnx Solution Format (migration guide)

December 13, 2025

See what changes in .slnx, how to convert your existing .sln, and what to watch out for in CI.

...