Outbox pattern in .NET

#613 – June 21, 2026

how to implement reliable message publishing

Outbox pattern in .NET: How to implement reliable message publishing
12 minutes by Hamed Salameh

Saving data and publishing a message are two separate operations, so a crash between them can silently lose events. The Outbox Pattern fixes this by writing messages to a database table in the same transaction as your business data, then using a background dispatcher to publish them to the broker. This gives you at-least-once delivery without any distributed coordination. Hamed walks through a full .NET 10 implementation using EF Core, PostgreSQL, RabbitMQ, and MassTransit.

See one of the few solutions purpose-built for generating real Blazor UIs
sponsored by Progress Telerik

The Telerik AI UI Generator, one of the few built for Blazor, just got even more practical. Explore real apps like financial dashboards, with full code, prompts, and walkthroughs. See how you can go from idea to working Blazor UI in minutes.

NuGet package pruning: Cleaner dependencies and actionable vulnerability reports
6 minutes by Nikolche Kolev

.NET 10 now removes platform-provided packages from dependency graphs by default. Many libraries pull in packages like System.Text.Json as dependencies even when the .NET runtime already includes a newer version, causing false vulnerability warnings. Package pruning strips these redundant entries at restore time, cutting false-positive vulnerability reports by 70% and reducing restore times by up to 50%.

EF Core in clean architecture the pragmatic way
13 minutes by Anton Martyniuk

Wrapping EF Core in a repository layer adds unnecessary complexity since DbContext already implements those patterns. Using DbContext directly in application use cases keeps code simpler, easier to read, and faster to change. Tests improve too, as running against a real database with tools like Testcontainers catches bugs that mocked repositories miss. Custom repositories still make sense for complex shared queries, multiple data sources, or strict team conventions.

New lines are more than \r and \n
3 minutes by Gérald Barré

Most developers only think of \r\n and \n as line breaks, but Unicode defines several more, including \u0085, \u2028, and \u2029. Ignoring these can cause parsing bugs when handling text from office tools, legacy systems, or cross-platform sources. In .NET, you can handle all cases using a regex pattern, string.ReplaceLineEndings, or the SplitLines helper from Meziantou.Framework.

EF Core Bulk Insert: The complete guide to inserting thousands of rows without the wait
18 minutes by Chris Woodruff

Inserting large volumes of data with a simple foreach loop works fine locally but falls apart in production due to slow change tracking, too many database round trips, and high memory use. EF Core 10's native AddRange with a single SaveChangesAsync call solves most of this through batching and fixes the change tracker overhead. For higher volumes or complex parent-child data, Entity Framework Extensions adds bulk insert methods that match raw SQL speed while keeping EF Core model integration.

And the most popular article from the last issue was:

newsletters