Join 68,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
Global Error Handling in ASP.NET Core: From Middleware to Modern Handlers
July 12, 2025
Learn How to handle errors globally in ASP.NET Core using middleware, IProblemDetailsService, and the new IExceptionHandler in .NET 8. This week's iss...
Using .NET Aspire With the Docker Publisher
July 05, 2025
A practical walkthrough of using .NET Aspire's Docker publisher to generate Docker Compose files from C# code. Learn how to set up an API with Postgre...
Testcontainers Best Practices for .NET Integration Testing
June 28, 2025
Integration tests shouldn't rely on external infrastructure—but they also shouldn't mock everything away. In this post, we look at how to use Testcont...
Monitoring .NET Applications with OpenTelemetry and Grafana
June 21, 2025
Instrumenting your .NET apps with OpenTelemetry is easy. But what about actually seeing those metrics and traces in action? Here's how to stream obser...
Run C# Scripts With dotnet run app.cs (No Project Files Needed)
June 14, 2025
With .NET 10, you can now run C# files directly. No project files, no Main method, just code. In this issue, I'll show you how to use the new `dotnet ...
Debunking the "Filter Early, JOIN Later" SQL Performance Myth
June 07, 2025
That viral SQL performance tip about filtering before joining? It is complete nonsense. Here is why query optimizers make it irrelevant.
YARP vs Nginx - A Quick Performance Comparison
May 31, 2025
In this article, we will compare the performance of YARP and Nginx, two popular reverse proxy solutions.
Building a Custom Domain Events Dispatcher in .NET
May 24, 2025
Learn how to build a lightweight, in-process domain events dispatcher in .NET without external dependencies. We'll explore the trade-offs between imme...
CQRS Pattern the Way It Should've Been From the Start
May 17, 2025
Learn how to implement CQRS in .NET without relying on MediatR. This guide walks you through a lightweight setup using simple interfaces, decorators, ...
From Anemic Models to Behavior-Driven Models: A Practical DDD Refactor in C#
May 10, 2025
A practical guide to transforming anemic domain models into behavior-rich aggregates in C# through incremental refactoring, enhancing code maintainabi...
Subscribe to the Newsletter
Join 68,000+ readers of The .NET Weekly for practical tips and resources to improve your .NET and software architecture skills.