.NETPro #33: .NET 10 Security Patch, VSTest Dependency Update, Ubuntu 26.04 with .NET 10, SkiaSharp 4.0 Preview, High-Performance Postgres Caching, API Versioning and OpenAPI, and More...
🌏 Actionable .NET tips, the latest updates, and community insights, all in one place
We all know that feeling when a high-traffic service starts sweating under load, and those “invisible” allocations suddenly turn into a massive headache for the Garbage Collector. To help you nip those bottlenecks in the bud, try throwing this at your AI assistant:
Audit this C# service for hidden allocations and GC pressure. Identify hot paths, then suggest optimizations using ReadOnlySpan<byte>, pooling, and modern caching strategies like HybridCache. Call out any LINQ, boxing, or async patterns that may degrade performance.
It’s a massive time-saver for cleaning up your hot paths before they ever reach production, which is exactly the kind of “set it and forget it” efficiency we’re chasing this week. We’ve got a packed issue today, ranging from a critical, must-install security patch for .NET 10 to some major housekeeping in VSTest that might save you from your next dependency headache. We’re also diving into the Ubuntu 26.04 release and the shiny new SkiaSharp 4.0 preview.
If your app is feeling a bit sluggish, don’t miss our spotlight tutorial on high-performance caching with Postgres. It’s a game changer for scaling smoothly. Grab a coffee, and let’s get into it!
Take a look at the highlights first:
➡️ VSTest drops Newtonsoft.Json for cleaner, modern dependency management
➡️ Controlling MCP tool calls securely in .NET apps
➡️ Explore what’s new for .NET on Ubuntu 26.04
➡️ Install this critical .NET 10.0.7 security update now
➡️ Combine API versioning with OpenAPI in .NET 10 applications
➡️ Small changes in byte handling can unlock surprising performance gains
➡️ Refactoring a 500-Line Method with the Pipeline Pattern
Keep reading, and when you’re done, drop us a note about what you enjoyed and how we can make the next edition more helpful.
Cheers!
Adrija Mitra
Editor-in-Chief
📰 What’s Happening in .NET!
The latest .NET breakthroughs are here. Haven’t explored them yet? Dive in now!
➡️ VSTest is Removing its Newtonsoft.Json Dependency: If you rely on VSTest, this change matters more than it seems. The team is removing its built-in Newtonsoft.Json dependency to reduce hidden coupling and align with modern .NET practices. Now, you will need to explicitly add it yourself if required, giving you more control and fewer version conflicts.
➡️ Governing MCP tool calls in .NET with the Agent Governance Toolkit: Microsoft’s Agent Governance Toolkit includes a policy-driven layer for controlling MCP tool calls in .NET applications. It evaluates each call before execution, enabling allow, deny, or approval workflows, scanning tool definitions for risks, and sanitizing outputs, helping you enforce security, compliance, and safe agent behavior consistently.
➡️ Welcome to SkiaSharp 4.0 Preview 1: SkiaSharp 4.0 Preview 1 marks a major update to the cross-platform .NET graphics library, introducing performance improvements, new APIs, and enhanced font capabilities. Co-maintained with Uno Platform, it strengthens stability, expands platform support, and modernizes rendering, helping you build faster, richer, and more consistent graphical applications across devices.
➡️ What’s new for .NET in Ubuntu 26.04: With Ubuntu 26.04, you get .NET 10 out of the box, making it easier to build and run modern apps right away. You can explore new resolute container images, try Native AOT for smaller, faster deployments, and still install older versions like .NET 8 and 9 when needed.
➡️ .NET 10.0.7 Out-of-Band Security Update: Microsoft has released .NET 10.0.7 as an urgent out-of-band update, and you should treat it as a must-install. It fixes a critical vulnerability in ASP.NET Core Data Protection that could allow privilege escalation and broken decryption, so updating immediately helps secure your applications and restore reliable encryption behavior.
⏱️ Time for Some Hands-On .NET
Don’t miss this edition’s spotlight guide!
⛷️ High-Performance Distributed Caching with .NET and Postgres on Azure
Stop making your users wait for slow database queries or sluggish external APIs. The secret to lightning-fast applications often lies in a smart caching strategy, and .NET 10 makes this easier than ever. By combining PostgreSQL as a reliable distributed cache with the new HybridCache library, you can bridge the gap between ultra-fast local memory and persistent storage. This approach ensures your app remains responsive even under heavy load, keeping data available across multiple server instances without sacrificing speed. It’s about building systems that scale smoothly while staying cost-effective.
Read on to see exactly how to wire these tools together for production-ready performance.
Why it’s worth exploring
This setup solves the “cold start” and synchronization problems common in distributed systems. By using HybridCache, you get the best of both worlds: the near-instant speed of in-memory caching for frequent requests and the durability of a PostgreSQL-backed distributed cache for everything else. For developers, this means writing less boilerplate code to manage cache expiration or serialization, resulting in a more resilient architecture that handles traffic spikes with ease.
What you need before diving in
An Azure subscription with an active PostgreSQL flexible server instance.
The .NET 10 SDK installed on your development machine (Windows, Linux, or macOS).
Basic familiarity with Dependency Injection and the .NET Generic Host pattern.
✒️ Got a Minute?
Tell us what you loved, what you want more of, and how we can make .NETPro even better in 2026. This quick 1-minute survey helps shape future issues around what matters most to you.
🧑🏼💻 What .NET Experts Are Talking About
Inside the minds of .NET pros: Real-world experience, real insights!
➡️ Combining API versioning with OpenAPI in .NET 10 applications: Worried your API updates might break everything? In this guide, Sander ten Brinke shows how .NET 10 simplifies versioning with the new Asp.Versioning tools and minimal boilerplate. You’ll learn practical approaches like URL and header versioning, plus cleaner OpenAPI integration, so you can evolve APIs without disrupting users.
➡️ Removing byte[] allocations in .NET Framework using ReadOnlySpan<T>: Those tiny byte arrays you barely notice are quietly costing you performance. In this article, Andrew Lock shows how switching to ReadOnlySpan<byte> can remove those allocations entirely, even in older .NET Framework apps by letting the compiler embed data directly. It’s a small change with real impact, as long as you understand the limits and pitfalls.
➡️ Refactoring a 500-Line Method with the Pipeline Pattern: That tangled web of if-else logic isn’t just messy, it’s slowing you down. In this video, Milan Jovanović walks you through refactoring a bloated loan eligibility service into a clean, flexible pipeline using .NET. You’ll see how to break logic into reusable rules, improve testability, and keep your code easy to extend without fear.
➡️ Copilot Squad replaces entire dev teams: What if your AI could act like a full dev team? In this video, Ed Andersen explores GitHub Copilot’s Squad feature, where multiple AI “agents” collaborate to build features, write tests, and even commit code. It’s impressive and a bit unsettling, showing how quickly development could change and why your role may need to evolve.
👋 Advertise With Us
Interested in sponsoring this newsletter and reaching a highly engaged audience of tech professionals? Take a look at our sponsorship page to explore available options. If it’s a good fit, contact ruvikar@packt.com to get started with the next steps.
And That’s a Wrap 🎬
Thanks for diving in. I hope this issue sparked an idea or two that could help fuel your next big project.
Got a minute? We’d love your feedback. Just take this quick 1-minute survey to help us improve future editions.
Keep learning, keep building, and we’ll see you next time!


