.NET Development and Framework

Modern .NET is a platform on a release rhythm — not the static framework that some teams still imagine when they hear the name. Once you accept the LTS-and-STS cadence, almost every architectural conversation inside a .NET shop changes. Lifecycle planning becomes a quarterly topic. Major version migrations become routine rather than projects. And the question stops being “which version are we on” and becomes “what is our story for the next two.”

A recurring theme in this collection is evolution over time. The runtime, the BCL, and the SDK each move on their own track, and the interesting work happens at the seams. Dynamic PGO, tiered compilation, and the steady improvements to the JIT have changed what performance-sensitive code looks like — patterns that were defensible in .NET Framework era are now actively slower than the idiomatic version. Articles trace these shifts release by release rather than treating any single version as the canonical reference.

The BCL has been quietly transformed by additions like SearchValues<T>, FrozenDictionary, Span<T>, Memory<T>, and the surrounding ecosystem of ref struct types. These are not niche features — they are the new defaults for anyone writing hot-path code. Articles cover when reaching for them pays back, when the older API is still the right answer, and the surprising corners where they interact badly with closures, async, or older library boundaries.

SDK ergonomics deserve their own attention. Central Package Management, project-level PackageReference graphs, source generators, AOT, and the slow but real maturing of the workload model all shape what a maintainable solution looks like. Articles cover the project-system trade-offs that compound silently across a multi-year codebase.

The LTS/STS rhythm itself is treated as a planning concern. Articles cover how to schedule upgrades against a real release window, when to skip an STS release, and how to keep the upgrade muscle exercised so that the next migration is not the one that breaks things.

.NET Job Scheduling — The Landscape

.NET Job Scheduling — The Landscape

Explore the spectrum of .NET job scheduling from lightweight in-memory solutions to enterprise-grade distributed systems. Understand which approach fits your operational model and why background processing architecture matters.
.NET Job Scheduling — The Complete Series

.NET Job Scheduling — The Complete Series

Background processing in .NET feels simple until invoices stop going out, jobs fire twice because two instances raced, and your retry logic has been hammering a dead endpoint for six hours with no one noticing. This series covers five frameworks — Hangfire, Quartz.NET, Coravel, NCronJob, and TickerQ — and maps each one to the scenarios where it actually fits, so you stop picking tools by GitHub star count and start picking them by the problems they solve.
NetEvolve.HealthChecks 5.0: 27+ Targeted Probes, Zero Boilerplate

NetEvolve.HealthChecks 5.0: 27+ Targeted Probes, Zero Boilerplate

NetEvolve.HealthChecks 5.0 is a decisive expansion—broader coverage scope, less boilerplate.

New domain‑specific packages extend monitoring across cloud services, messaging platforms, graph, time‑series, vector and AI backends. In parallel, the former inheritance‑driven shared base library (abstract classes + repetitive DI wiring) was replaced by purpose-built source generators—removing manual registration churn and consolidating intent. Release 5.0 also formalizes full support for .NET 10—aligning with current trimming and analyzer improvements.

.NET 10 Testing: Microsoft Finally Fixed the Test Runner (Mostly)

.NET 10 Testing: Microsoft Finally Fixed the Test Runner (Mostly)

.NET 10 replaces VSTest with Microsoft.Testing.Platform, bringing SDK-integrated testing with faster discovery, consistent behavior across environments, and explicit configuration contracts. But it requires .NET 10, breaks old test adapters, and demands CI pipeline discipline. Here’s what actually changes, who should migrate now, and who should wait.
Code Metrics and Configuration: Beyond the Numbers Game

Code Metrics and Configuration: Beyond the Numbers Game

Code metrics have become a standard feature in modern development environments, yet their implementation and interpretation often leave much to be desired. While Visual Studio and .NET provide comprehensive code metrics analysis, the way these metrics are configured, presented, and (more critically) acted upon reveals a fundamental disconnect between measurement and meaningful improvement.

What code metrics actually measure, how to configure them properly, and (more importantly) why blindly following thresholds without understanding context is, frankly, a recipe for misguided refactoring efforts that waste your team’s time and actively damage your codebase.