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
Join thousands of software engineers
Previous issues of The .NET Weekly
How to Implement Two-Factor Authentication in ASP.NET Core
February 28, 2026
Passwords alone are not enough. Learn how to implement Two-Factor Authentication in .NET using TOTP, QR codes, and the Otp.NET library, with a secure ...
Where Vertical Slices Fit Inside the Modular Monolith Architecture
February 21, 2026
Modular Monolith tells you how to split the system into modules. But it says nothing about how to organize code inside each module. Vertical Slice Arc...
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...
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...
Subscribe to the Newsletter
Join 70,000+ readers of The .NET Weekly for practical tips and resources to improve your .NET and software architecture skills.