Browse .NET Blogs (19)
Andrew Lock explains how .NET 11 improves System.Diagnostics.Process output handling to avoid stdout/stderr deadlocks, and introduces new APIs for capturing text, lines, and bytes from child processes with simpler sync and async patterns.
DevClass reports on renewed community criticism of Microsoft’s .NET support lifecycle, arguing that the three-year LTS window is too short for enterprise upgrade and adoption cycles and can leave only a one-year window to move between LTS releases.
Andrew Lock explains the new C# “closed class hierarchies” feature in .NET 11 preview 5, showing how it restricts inheritance to a single assembly and why that matters for safer switch expressions. He also covers how to enable the preview feature and what limitations to expect.
Rick Strahl explains why inheriting ASP.NET Core MVC controllers with attribute routes can trigger ambiguous route matches (500 errors), and shows two practical fixes: using abstract base controllers to avoid duplicate route registration, or suppressing base-controller action descriptors with a custom IActionDescriptorProvider.
Rick Strahl explains why inheriting ASP.NET Core MVC controllers that use attribute routing can lead to 500 errors and ambiguous route matches, especially when the base controller lives in a referenced library. He breaks down the root cause (duplicate routes) and shows practical fixes for library and app authors.
John Edward explains what “agentic AI” means in the Microsoft ecosystem, focusing on how goal-driven agents plan tasks, call tools, and maintain memory. The article maps those concepts to Azure AI Foundry, Semantic Kernel, and Microsoft Graph, with concrete enterprise workflow examples.
Tim D'haeyer explains how to replace BizTalk-style code-table mapping during migrations by using an Azure Function that enriches XML documents via XPath-driven rules and SQL lookups, keeping Azure Logic Apps focused on orchestration instead of complex transformation logic.
Andrew Lock explains the new StringBuilder.MoveChunks() API in .NET 11 preview 5, showing how it can avoid large ToString() allocations by transferring a StringBuilder’s internal buffers. He also digs into the implementation details and why this matters for Roslyn source generators and SourceText creation.
Rick Strahl breaks down three practical ways to ship a Windows app that works as both a GUI and a CLI, using his WebPackageViewer tool as the example and calling out the real-world trade-offs around console attachment, prompt glitches, and console-window flashing.
John Edward explains why AI apps are moving from single “copilot” assistants to multi-agent systems, and how Semantic Kernel can be used to orchestrate specialized agents that collaborate via tools, memory, and coordination patterns—along with the practical engineering challenges this introduces.
Rick Strahl walks through an edge-case but practical .NET Framework/WPF tool that packages a static documentation website into a single Windows EXE, then unpacks and renders it offline using WebView2. He covers the packaging approach, ILRepack-based single-file builds, embedding native dependencies, and the SmartScreen/code-signing trade-offs.
DevClass reports on .NET Aspire 13.4, highlighting the general availability of the TypeScript AppHost and new integrations that broaden Aspire beyond C#-only workflows. The piece also covers deployment targets (including Azure and Kubernetes), the Aspire dashboard’s OpenTelemetry-based observability, and notable Kubernetes-related improvements.
Rick Strahl explains why ASP.NET Core cookie-auth logins can “disappear” after IIS app pool recycles: the Data Protection key ring isn’t persisting, so previously issued auth cookies can’t be decrypted/validated. He shows how to fix it by enabling Load User Profile or by explicitly persisting keys to a known location.
Rick Strahl explains how to host an ASP.NET Core app under a virtual subfolder (like /blog) using PathBase, and what you need to change in your app and IIS configuration so routing, static files, and generated URLs keep working.
Andrew Lock explains the new union types feature in .NET 11 (C# 15), including the `union` keyword syntax, how exhaustive `switch` expressions work, and what the compiler generates behind the scenes. He also shows how to build custom union implementations to avoid boxing in performance-sensitive scenarios.
DevClass reports on Microsoft’s claimed WinUI 3 performance improvements, including a 25% speed-up in File Explorer areas built with WinUI and reductions in memory allocations and function calls, alongside developer concerns about WinUI 3 responsiveness versus WPF and UWP.
Rick Strahl shows where to read the client IP address in ASP.NET Core, and how to handle reverse proxies by parsing common forwarding headers or enabling the built-in Forwarded Headers Middleware.
Andrew Lock walks through the new .NET 11 `webworker` project template for Blazor WebAssembly, showing how to move CPU-heavy work off the UI thread and how the generated .NET and JavaScript glue code communicates with a browser Web Worker.
Hidde de Smet shows how to combine five GitHub Copilot customization file types in a single .NET Aspire repo, so the right instructions, skills, prompts, and agent roles load at the right time without bloating every chat request.
End of content