#598 – March 08, 2026
async/await frees up threads but does not make the underlying work faster
Async does not mean scalable
6 minutes by Irina Scurtu
Irina argues that async/await frees up threads but does not make the underlying work faster. A database still gets 1,000 queries whether the code awaits them or not. Message queues move pressure from one place to another, and if consumers are slower than producers, debt builds fast. Real throughput improvements come from adding consumers, partitioning work, and fixing the actual bottleneck, whether that is a missing index, an N+1 query, or a rate-limited API.
ReSharper Is Now Available for VS Code and Cursor
sponsored by Jetbrains
Bring 20 years of .NET expertise into your editor. The new ReSharper extension delivers a productivity boost for C#, Razor, Blazor, and XAML – right inside VS Code, Cursor, and other compatible editors. Working with AI-generated code? ReSharper helps you review, refine, and ship production-ready code with confidence. Install this professional tool with a free option for non-commercial use.
Modern mapping with EF Core
15 minutes by Ricardo Peres
Ricardo explains modern mapping techniques in EF Core, including how entities, value types, and primitive collections can be stored in databases. He describes new features such as complex properties, owned entities, JSON storage, table and entity splitting, and shadow or indexer properties. He also shows how to map data from views, SQL queries, and functions, giving developers more flexible ways to design and store data.
How an ASP.NET MVC quirk became a security leak
4 minutes by Bart Wullems
ASP.NET MVC silently removes duplicate filter types when building the filter pipeline, keeping only the most specific one. A global filter loses to a controller-level filter of the same type, with no warning or log entry. Bart points out that this caused a security gap where a stricter permission check was quietly discarded, leaving only the weaker global rule. The fix was setting AllowMultiple to true on the attribute and auditing all filters for similar type collisions.
.NET memory dump analysis with DumpLinq
14 minutes by Anders Pedersen
Memory dumps let you inspect a frozen snapshot of a crashed process before restarting it wipes all evidence. Beyond just finding memory leaks or stuck threads, you can query object state directly using LINQ, turning the dump into a searchable database. Anders shows how this works with two real cases: one traced uneven load balancing to a version mismatch in a client component, another confirmed stuck work items caused by CPU memory reordering.
High performance logging in .NET
6 minutes by Abdul Rahman
Abdul teaches you two powerful .NET techniques designed for high-performance logging in hot paths: the LoggerMessage.Define method and the logging source generator. Both are built into Microsoft.Extensions.Logging and produce the fastest, most memory-efficient logs possible in .NET.
And the most popular article from the last issue was: