user@runtime:~/blog$ cat welcome.md
# The Runtime
Exploring technology from a .NET perspective
user@runtime:~/blog$
.NET 11 lets SignalR clients swap in a fresh access token on a live connection instead of forcing a reconnect when the old one expires. Here's how to configure it on the server and client, and where the guardrails are.
C# 15 rounds out extension members with indexers, letting you add this[] syntax to types you can't modify. Here's how the syntax works, how resolution is prioritised against real indexers, and where the preview feature still bites.
.NET 11 introduces an automatic CSRF protection middleware that uses browser Fetch Metadata headers instead of tokens. It's on by default, requires no code changes, and fundamentally changes how cross-site request forgery is handled in ASP.NET Core.
ReSharper 2026.2 ships the most requested feature for its VS Code extension: a full debugger built on the Rider engine. With Microsoft's C# Dev Kit banned from Cursor and other editors, JetBrains now offers the only complete .NET development experience outside Visual Studio and Rider.
Microsoft's Binlog MCP Server exposes 38 tools that let AI assistants query MSBuild binary logs directly, turning cryptic build failures and performance bottlenecks into natural-language conversations.
.NET 11 adds Enumerable.FullJoin for full outer joins and tuple-returning overloads for Join, GroupJoin, LeftJoin, and RightJoin, eliminating the result selector boilerplate that has plagued LINQ joins since 2007.
C# 15 introduces the closed modifier for class hierarchies, restricting derivation to the declaring assembly and enabling exhaustive switch expressions without a default arm. Here is how it works, how it differs from unions and sealed classes, and where it fits in domain modelling.
Microsoft is building dotnetup, an official cross-platform .NET SDK and runtime version manager inspired by rustup. Here's what it does, how it works with global.json, and why it matters for teams and CI pipelines.
SkiaSharp 4.148.0 is the first production-ready v4 release, delivering up to 24% faster GPU rendering, animated WebP encoding via SKWebpEncoder, a legacy-free API surface, and critical lifecycle fixes. Here is what changed since Preview 1 and how to migrate.
With .NET 11 Preview 5, Blazor SSR forms gain automatic client-side validation and a new async validation pipeline, closing the biggest gap between static rendering and interactive modes.
Aspire 13.4 lands at Build 2026 with TypeScript AppHost graduating to general availability, new hosting integrations for Go, Bun, and Blazor WebAssembly, process-backed resource commands, persistent resource lifetimes, and a stack of Kubernetes deployment improvements.
.NET 11 Preview 4 makes CoreCLR the default runtime for MAUI on Android, iOS, and Mac Catalyst, ending the long-standing Mono/CoreCLR split and bringing tiered JIT, PGO, full diagnostics, and a path to NativeAOT on mobile.
C# is overhauling the unsafe keyword from a syntax gate into a formal safety contract system with propagation, suppression boundaries, and documentation requirements. Here is what changes, how it compares to Rust, and what you need to do to prepare.
Foundry Local lets you ship AI-powered .NET applications that run entirely on the user's device — no cloud, no per-token costs, no network latency. Version 1.1 adds text embeddings, live audio transcription, and broadens .NET compatibility all the way back to .NET Framework 4.6.1.
.NET 11 Preview 4 adds first-class support for the HTTP QUERY method -- a safe, idempotent verb that accepts request bodies. Here is how it works in ASP.NET Core, why it matters for API design, and where the ecosystem stands today.
The .NET 10 JIT compiler can now prove that many objects never leave their parent method and allocate them on the stack instead of the heap, eliminating GC pressure without any code changes.
.NET 10 introduces the [PersistentState] attribute, replacing dozens of lines of manual serialisation boilerplate with a single attribute. It also extends state persistence to services, enhanced navigation, and circuit reconnection.
The new WebSocketStream class in .NET 10 wraps a WebSocket in a standard System.IO.Stream, eliminating the frame-management boilerplate that has plagued WebSocket code for years and unlocking the entire stream ecosystem for WebSocket transports.
Aspire 13.3 ships native Kubernetes deployment via Helm, browser telemetry streaming, three JavaScript publishing models, and an aspire destroy command that tears down what aspire deploy created. Here is what changed and why it matters.
IExceptionHandler gives ASP.NET Core apps a structured, testable, and chainable way to handle exceptions globally — replacing hand-rolled middleware and scattered try-catch blocks with a first-class framework feature.
The Microsoft Agent Framework can define multi-agent workflows, but they vanish when the process dies. The Durable Task extension fixes that, taking your workflows from in-memory prototypes to fault-tolerant, scalable Azure Functions deployments without changing your workflow code.
Visual Studio 2026 ships a purpose-built @Test agent that generates, builds, runs, and self-heals C# unit tests across your entire solution. Here is how the workflow operates, what it does well, and where you still need to think for yourself.
The A2A protocol gives AI agents a standard way to discover and talk to each other across frameworks, languages, and vendors. With v1 shipping in the Microsoft Agent Framework for .NET, here is how to expose and consume agents over A2A using familiar ASP.NET Core patterns.
Microsoft's new Caching.Postgres package turns your existing PostgreSQL instance into a distributed cache. Combined with HybridCache, it delivers a tiered caching architecture without adding Redis to your infrastructure.
The Agent Governance Toolkit gives .NET developers policy-based control over MCP tool execution, from prompt injection detection to privilege rings. Here is how to lock down your AI agents before they reach production.