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

The Real Cost of Abstractions in .NET

August 23, 2025

Not all abstractions are created equal. Some isolate real volatility and protect your system from change. Others quietly pile up complexity and hide p...

Building Generative AI Applications With GitHub Models and .NET Aspire

August 16, 2025

Discover how to integrate AI into your .NET applications in under an hour using GitHub Models and .NET Aspire 9.4. I'll walk you through building a si...

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...

...