Posts

Page 3 of 15

user@runtime:~/blog$ ls -la posts/ --sort=date
azure 2026-04-14 10m

Azure MCP Server 2.0: The Bridge Between Your AI Agents and Your Azure Infrastructure

Azure MCP Server 2.0 ships with self-hosted remote deployment, 276 tools across 57 Azure services, and enterprise-grade authentication. Here is what .NET developers need to know to wire AI agents into their cloud infrastructure.

csharp-14 2026-04-13 9m

User-Defined Compound Assignment Operators: The C# 14 Feature That Kills Needless Allocations

C# 14 lets you define instance-level +=, -=, ++, and other compound assignment operators that mutate in place instead of allocating new objects. Here's how they work, when they fall back, and where the pitfalls hide.

dotnet-10 2026-04-13 8m

LeftJoin and RightJoin: The LINQ Operators That Should Have Existed From Day One

.NET 10 adds first-class LeftJoin and RightJoin methods to both System.Linq and EF Core 10, replacing the infamous GroupJoin-SelectMany-DefaultIfEmpty incantation with something you can actually read.

aspnet-core 2026-04-13 10m

TypedResults: The Minimal API Return Type That Writes Your OpenAPI Spec for You

TypedResults and the Results<T1, T2> union pattern give Minimal API endpoints compile-time safety, automatic OpenAPI metadata, and cleaner unit tests. Here is how to use them properly and why they should be your default.

dotnet 2026-04-12 9m

XenoAtom.Terminal.UI: A Reactive TUI Framework That Treats the Terminal Like a Real UI Platform

XenoAtom.Terminal.UI brings retained-mode rendering, reactive state binding, and 60+ composable controls to .NET terminal applications. Here is why it is worth your attention if you build CLI tools or dashboards.

performance 2026-04-12 9m

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.

aspnet-core 2026-04-11 8m

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.

testing 2026-04-11 11m

TUnit: The Source-Generated Testing Framework That Skips Reflection Entirely

TUnit replaces runtime reflection with compile-time source generation for test discovery, delivering faster execution, Native AOT support, and compile-time safety that xUnit, NUnit, and MSTest cannot match.

azure 2026-04-11 11m

SQL MCP Server: Microsoft's Answer to the NL2SQL Problem

Microsoft's SQL MCP Server gives AI agents deterministic, RBAC-secured access to SQL Server, PostgreSQL, Cosmos DB, and MySQL without generating a single line of raw SQL. Here is how it works and why it deliberately avoids NL2SQL.

tooling 2026-04-10 9m

The .slnx Solution Format: .NET 10's Quiet Revolution in Project Organisation

.NET 10 makes .slnx the default solution format, replacing the decades-old .sln with clean XML, zero GUIDs, and merge-friendly structure. Here is how to migrate and what to watch out for.

csharp-14 2026-04-10 10m

First-Class Span Types in C# 14: The End of Overload Sprawl

C# 14 promotes Span<T> and ReadOnlySpan<T> to first-class citizens with implicit conversions, smarter type inference, and new overload resolution rules that eliminate the need for duplicate API overloads across arrays and spans.

entity-framework 2026-04-10 8m

Named Query Filters in EF Core 10: The End of the Single-Filter Workaround

EF Core 10 finally lets you attach multiple named query filters to a single entity type and disable them selectively, replacing the awkward && chaining workaround that has haunted multi-concern filtering for years.

aspnet-core 2026-04-09 11m

Passkeys in ASP.NET Core 10: Phishing-Resistant Auth Without the Third-Party Dependency

ASP.NET Core 10 ships with built-in passkey support in Identity, bringing WebAuthn registration and authentication into the framework. Here's how it works, what the API surface looks like, and where you'll still need a third-party library.

openapi 2026-04-09 9m

Kiota: Microsoft's OpenAPI Client Generator That Understands Your API's Shape

Kiota generates strongly typed API clients from OpenAPI specs using a hierarchical request builder pattern. Here's how to use it, wire it into DI, and avoid the pitfalls that trip up most teams.

aspnet-core 2026-04-09 10m

ASP.NET Core 2.3 End of Support: The Clock Is Ticking on .NET Framework's Last Bridge

Microsoft has announced that ASP.NET Core 2.3 on .NET Framework reaches end of support on April 7, 2027. Here is what that means, why the version number is stranger than it looks, and how to plan your migration.

libraries 2026-04-08 9m

Mapperly: The Source-Generated Mapper That Makes AutoMapper Feel Like Legacy Code

Mapperly generates object mapping code at compile time using Roslyn source generators, delivering hand-written performance with zero reflection. Here is how to use it and why teams are switching.

ai 2026-04-08 9m

Microsoft Agent Framework 1.0: Building AI Agents in .NET Without the Guesswork

Microsoft Agent Framework 1.0 merges Semantic Kernel and AutoGen into a single, production-ready SDK for building AI agents in .NET. Here is what the unified model looks like, how tools and middleware work, and where workflows fit in.

dotnet 2026-04-08 10m

Garnet: Microsoft's High-Performance Redis Alternative Built on .NET

Garnet is a Redis-compatible cache store from Microsoft Research that outperforms Redis at both low and high concurrency. Here's how to use it from your .NET applications.

aspnet-core 2026-04-07 10m

HybridCache: The .NET Caching API That Should Have Existed Years Ago

HybridCache combines in-process and distributed caching behind a single API, with built-in stampede protection, tag-based invalidation, and zero-allocation reads for immutable types. Here is how to use it and why it replaces most hand-rolled IDistributedCache code.

csharp-14 2026-04-07 10m

The field Keyword in C# 14: Backing Fields Without the Boilerplate

C# 14 introduces the field contextual keyword, letting you add validation, lazy initialisation, and change notification to properties without declaring explicit backing fields. Here's how it works, what it compiles to, and where it falls short.

blazor 2026-04-07 9m

Blazor Finally Gets TempData: Flash Messages and PRG Without the Workarounds

.NET 11 Preview 2 brings TempData to Blazor static SSR as a cascading parameter, enabling flash messages, one-time notifications, and the POST-Redirect-GET pattern without custom state hacks.

entity-framework 2026-04-06 12m

EF Core 11 Preview: One-Step Migrations, Full-Text Indexes, and the End of Sync I/O

EF Core 11 brings one-step migrations, managed full-text search indexes, complex types with TPT/TPC inheritance, MaxBy/MinBy translation, and a hard cut from synchronous Cosmos DB access. Here is what matters and what will break.

wolverine 2026-04-06 9m

Wolverine: The .NET Message Handler That Replaced Half My Infrastructure

Wolverine combines in-process mediation, asynchronous messaging, and a transactional outbox into a single handler model with zero-reflection code generation. Here is why it is worth evaluating if your project has outgrown MediatR.

tooling 2026-04-06 10m

Visual Studio 2026: The AI-Native IDE That Actually Earned the Title

Visual Studio 2026 shipped on March 31 with AI agents for profiling and debugging, Razor cohosting inside Roslyn, decoupled toolchains, and over 5,000 bug fixes. Here is what matters for .NET developers.

dotnet-10 2026-04-05 9m

Server-Sent Events in ASP.NET Core: Native Streaming Arrives in .NET 10

.NET 10 adds first-class Server-Sent Events support with TypedResults.ServerSentEvents, SseItem<T>, and a client-side SseParser. No more hand-rolled text/event-stream responses -- here is how the new API works from endpoint to EventSource.