SearchValues: The .NET Type That Turns Text Searching Into a SIMD Problem
SearchValues<T> analyses your search criteria once at creation time, then uses SIMD vectorisation and specialised algorithms to search spans at speeds most hand-written loops cannot match.
Keyed Services in .NET: The Built-In DI Feature You're Probably Not Using Yet
Keyed services bring named registrations to .NET's built-in dependency injection container, replacing custom factories and IEnumerable filtering with a clean, attribute-driven approach that works across the entire ASP.NET Core stack.
TimeProvider: Finally, Testable Time in .NET
How System.TimeProvider in .NET 8 replaces years of IClock wrappers with a first-class abstraction for testable, deterministic time — and how FakeTimeProvider makes testing time-dependent code straightforward.
Upgrading from .NET 6 to .NET 8: A Practical Checklist
A step-by-step guide to upgrading your .NET 6 applications to .NET 8, covering breaking changes, TFM updates, and common pitfalls.
The Configuration Binding Source Generator in .NET 8
How .NET 8's configuration binding source generator eliminates reflection from your configuration pipeline and improves AOT compatibility.
Frozen Collections in .NET 8
FrozenDictionary and FrozenSet trade construction time for dramatically faster lookups in read-heavy scenarios.