Posts

Page 2 of 15

user@runtime:~/blog$ ls -la posts/ --sort=date
dotnet-11 2026-05-03 8m

VSTest Drops Newtonsoft.Json: What Changes for Your Test Projects in .NET 11

VSTest is removing its long-standing Newtonsoft.Json dependency in .NET 11 Preview 4, switching to System.Text.Json on .NET and JSONite on .NET Framework. Here's what breaks, why it matters, and how to fix it.

dotnet 2026-05-01 10m

SkiaSharp 4.0 Preview 1: Variable Fonts, Immutable Paths, and a New Co-Maintainer

SkiaSharp 4.0 Preview 1 lands with Skia milestone 147, a proper variable font API, immutable SKPath backed by SKPathBuilder, colour font palettes, and Uno Platform stepping in as co-maintainer. Here is what changed and what it means for your .NET graphics code.

security 2026-04-30 9m

CVE-2026-40372: The ASP.NET Core Data Protection Flaw That Demands More Than a Patch

A critical HMAC validation bug in Microsoft.AspNetCore.DataProtection lets attackers forge authentication cookies and decrypt protected payloads. Upgrading to 10.0.7 fixes the code, but key rotation and artifact auditing are essential to close the window fully.

dotnet 2026-04-29 9m

Node.js Native Addons in C#: Replacing C++ and node-gyp with .NET Native AOT

The C# Dev Kit team replaced their C++ Node.js addon with C# compiled via .NET Native AOT, eliminating Python and node-gyp from their build chain. Here's how N-API, UnmanagedCallersOnly, and LibraryImport make it work.

aspnet-core 2026-04-28 9m

Asp.Versioning Meets Built-In OpenAPI: Versioned API Documentation in .NET 10

Asp.Versioning v10.0.0 brings first-class integration with .NET 10's built-in OpenAPI library, replacing the Swashbuckle-era workarounds with a single AddOpenApi call, automatic per-version documents, and RFC 9745 deprecation headers.

tooling 2026-04-27 11m

Visual Studio Goes Rolling: What the 2027 Announcement Means for .NET Teams

At VSLive! Las Vegas, Microsoft confirmed that Visual Studio 2027 will arrive as an in-place update to 2026 — not a side-by-side install. Here is how the new annual rolling release model, decoupled build tools, and LTSC channels change daily life for .NET developers.

dotnet 2026-04-26 10m

UnsafeAccessorAttribute: Zero-Overhead Private Member Access Without Reflection

UnsafeAccessorAttribute lets you access private fields, methods, and constructors at the same speed as direct calls — no reflection, no Reflection.Emit, and full Native AOT compatibility. Here's how to use it, when it makes sense, and where developers trip up.

dotnet-10 2026-04-25 10m

.NET 10 on Ubuntu 26.04: One apt install Away from a Clean Linux Setup

Ubuntu 26.04 LTS ships .NET 10 in the default package archive, ending years of package conflicts and multi-feed confusion. Here is what changed, how to set up your environment, and what the new container images and Native AOT tooling look like.

dotnet-maui 2026-04-24 8m

Pin Clustering Arrives in .NET MAUI Maps: No More Third-Party Dependencies

.NET 11 Preview 3 adds built-in pin clustering to the MAUI Map control, grouping nearby markers automatically on iOS, Mac Catalyst, and Android without requiring external packages.

native-aot 2026-04-23 9m

Writing Node.js Native Addons in C# with .NET Native AOT

Microsoft's C# Dev Kit team replaced their C++ Node.js addons with C# and Native AOT, eliminating Python dependencies and simplifying their build pipeline. Here is how N-API, UnmanagedCallersOnly, and a custom DLL import resolver make it work.

security 2026-04-22 9m

CVE-2026-40372: The Data Protection HMAC Bug That Made Cookie Forgery Trivial on Linux

Microsoft's emergency .NET 10.0.7 out-of-band update patches a CVSS 9.1 flaw in the Data Protection managed encryptor. If you run ASP.NET Core on Linux, your HMAC validation was effectively broken since .NET 10 shipped.

blazor 2026-04-21 10m

Blazor's Virtualize Component Finally Handles Variable-Height Items in .NET 11

.NET 11 Preview 3 reworks the Virtualize component to measure actual item heights at runtime using a running average, eliminating the broken spacing and scroll jumps that plagued lists with variable-height content since the component shipped in .NET 5.

entity-framework 2026-04-20 10m

EF Core 11 Preview 3: Cheaper Change Tracking, Safer Migrations, and Cleaner SQL

EF Core 11 Preview 3 ships GetEntriesForState to bypass DetectChanges, ExcludeForeignKeyFromMigrations for cross-boundary relationships, migration tree divergence detection, and leaner join generation. It also bumps SqlClient to 7.0 and makes MigrationsNotFound throw by default.

dotnet-11 2026-04-19 10m

#:include Lands in .NET 11: File-Based Apps Finally Go Multi-File

.NET 11 Preview 3 adds the #:include and #:exclude directives to file-based apps, letting you split scripts across multiple files without reaching for a .csproj. Here is how they work, what they don't do, and where the edges still need sanding.

security 2026-04-18 8m

.NET April 2026 Security Patches: SMTP Header Injection and XML Recursion Bombs Explained

Microsoft's April 2026 servicing update patches two high-severity vulnerabilities in System.Net.Mail and System.Security.Cryptography.Xml. Here is how they work, why they matter, and what you need to do.

libraries 2026-04-17 10m

TickerQ: The Source-Generated Job Scheduler That Skips the Reflection Tax

TickerQ replaces the reflection-heavy plumbing of Hangfire and Quartz.NET with compile-time source generators, EF Core persistence, and a built-in real-time dashboard. Here is how to set it up, define jobs, and avoid the gotchas.

dotnet-11 2026-04-17 10m

dotnet watch Finally Works With Aspire: Per-Resource Hot Reload in .NET 11

The .NET 11 Preview 3 SDK ships a named-pipe coordination layer between dotnet watch and Aspire AppHosts, enabling per-resource hot reload, crash recovery with deferred relaunch, and proper Ctrl+C handling for Windows desktop apps.

visual-studio 2026-04-16 11m

The Visual Studio Debugger Agent: From Bug Report to Verified Fix Without Leaving the IDE

Visual Studio 18.5 ships a Debugger Agent that reads your bug report, sets breakpoints, watches runtime state as you reproduce the issue, and proposes a verified fix. Here is how the workflow operates and where it fits alongside the existing Profiler and custom agents.

dotnet-11 2026-04-16 9m

.NET 11 JIT and Runtime Improvements: Free Performance You Didn't Ask For

.NET 11 Preview 3 ships JIT improvements that eliminate bounds checks, fold switch expressions into branchless code, and speed up casts -- plus VM-level wins like 200x faster interface dispatch on iOS and faster GUID generation on Linux. Here is what changed and why it matters.

dotnet-11 2026-04-16 8m

System.Text.Json in .NET 11: PascalCase, Per-Member Naming, and Type-Level Ignore

Three new features in .NET 11 Preview 3 give you fine-grained control over JSON serialisation: a built-in PascalCase naming policy, a per-member naming attribute, and type-level ignore conditions.

dotnet 2026-04-15 9m

System.Threading.Lock: The Purpose-Built Lock That Replaces Your object Hack

Since .NET 9, the System.Threading.Lock type gives you a dedicated, faster, and semantically clearer alternative to locking on a bare object. Here is how it works, why it is roughly 25% faster than Monitor, and what to watch out for when migrating.

dotnet-11 2026-04-15 9m

.NET 11 SDK Preview 3: The CLI Improvements That Sharpen Your Inner Dev Loop

.NET 11 Preview 3 brings multi-file file-based apps via #:include, inline environment variables with dotnet run -e, CLI-editable solution filters, and a dotnet watch that recovers from crashes and integrates with Aspire.

entity-framework 2026-04-15 11m

Full-Text Search in EF Core 11: Ranked Results Without Leaving LINQ

EF Core 11 finally brings first-class full-text search support for SQL Server, including migration-managed catalogs and indexes, and FREETEXTTABLE/CONTAINSTABLE translation with ranking scores baked into your LINQ queries.

performance 2026-04-14 11m

System.IO.Pipelines: The High-Performance I/O API You're Still Not Using

System.IO.Pipelines is the API that powers Kestrel's legendary throughput, yet most .NET developers still reach for raw streams and byte arrays. Learn how PipeReader and PipeWriter eliminate the buffer-management nightmare and give you backpressure for free.

dotnet 2026-04-14 10m

Orleans: The Virtual Actor Framework That Makes Distributed .NET Feel Like Local Code

Orleans turns distributed systems into a problem you already know how to solve. Its virtual actor model lets you write single-server C# that the runtime scales across a cluster, handling activation, placement, and fault recovery behind the scenes.