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
The 5 Most Common REST API Design Mistakes (and How to Avoid Them)
August 09, 2025
Five REST API design mistakes I see all the time, with practical fixes. Use consistent resource naming, evolve contracts instead of bumping versions, ...
How to Keep Your Data Boundaries Intact in a Modular Monolith
August 02, 2025
Want real boundaries in your modular monolith? This article shows how to enforce them at the database level using Postgres schemas, roles, and EF Core...
Named Query Filters in EF 10 (multiple query filters per entity)
July 26, 2025
EF 10 introduces named query filters, allowing multiple filters on a single entity and letting you selectively disable specific filters without turnin...
PDF Reporting in .NET With HTML Templates and PuppeteerSharp (and it's free)
July 19, 2025
Generate PDF reports in .NET using HTML templates and a headless browser. We'll explore Handlebars.NET and PuppeteerSharp, compare alternatives, and a...
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.
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.