Twenty-year-old .NET threading code still compiles and runs on .NET 11. This first part of a series follows the road from Thread and ThreadPool through APM, EAP and SynchronizationContext to the Task Parallel Library in .NET 4, and measures what pooling and tasks save today on .NET Framework 4.8, .NET 8, .NET 10 and .NET 11.
All 35 of our repositories now publish to nuget.org without a long-lived API key. How NuGet Trusted Publishing works with GitHub Actions, a working workflow, why reusable workflows fail and a composite action does not, the pitfalls that cost time, and why the migration is small enough to do this week.
Managed DevOps Pools can feel instant or painfully slow, and the difference is mostly configuration. A walkthrough of agent state, standby modes, prediction preferences and image buffers, with Terraform, ARM and CLI examples, a cost-aware recommendation for each team shape and lessons from cascading pipelines and fan-out deployments.
Cancellation is the steady state for inference gateways, not the edge case, and .NET 11 targets exactly that pain: runtime async collapses per-boundary exception rethrows, JIT deabstraction cuts allocations, and bounds-check elimination speeds up tokenization loops.
None of it makes a slow model call faster, but it buys flatter tail latency and fewer instances for the same throughput.
.NET 11’s JIT ships real codegen wins: guarded devirtualization, wider escape analysis, a smaller delegate layout, and sharper bounds-check elimination.
All of them are conditional on shapes the JIT can prove, not blanket speedups; here is what changed, why, and how to check whether your hot path qualifies.