C# Source Generator Performance: Measuring and Optimizing Build-Time Impact
Every time you save a file in Visual Studio, your source generators run. Every CI pipeline build runs them again. If your generators are slow, that cost multiplies across every developer on your team, every branch push, and every incremental build throughout the day. C# source generator performance is one of those topics that developers rarely think about until the build timeline suddenly shows a 10-second penalty for a generator that should take milliseconds.
This article covers how to actually...
Take me to this post.
April 03, 2026
Migrating from Semantic Kernel to Microsoft Agent Framework in C#
Migrating from Semantic Kernel to Microsoft Agent Framework in C#
If you have been building AI-powered applications in C# with Semantic Kernel, you have probably heard about Microsoft's newer Agent Framework (MAF). Deciding whether to migrate semantic kernel microsoft agent framework in your own project is not a simple yes-or-no question -- and that is exactly what this guide is for. We will walk through the honest tradeoffs, a concrete API mapping table, side-by-side code comparisons, and the g...
Take me to this post.
April 03, 2026
The Pulse: is GitHub still best for AI-native development?
Availability has dropped to one nine (~90% – !!), partly due to not being able to handle increased traffic from AI coding agents. There’s also no CEO and an apparent lack of direction....
Take me to this post.
April 03, 2026
How can I use ReadDirectoryChangesW to know when someone is copying a file out of the directory?
File copying is not a fundamental operation, nor is it even detectable at the file system layer.
The post How can I use ReadDirectoryChangesW to know when someone is copying a file out of the directory? appeared first on The Old New Thing....
Take me to this post.
April 03, 2026
Observer vs Mediator Pattern in C#: Key Differences Explained
Observer vs Mediator Pattern in C#: Key Differences Explained
Both the observer and mediator patterns deal with communication between objects, and developers regularly confuse them. They're both behavioral design patterns from the Gang of Four catalog. They both reduce direct dependencies between components. So why does it matter which one you pick? The observer vs mediator pattern in C# distinction comes down to how communication is structured -- and getting it wrong leads to designs that fight...
Take me to this post.
April 03, 2026
Error'd: Clever domain name here
An anonymous cable-puller wrote
"Reading a long specification manual.
The words "shall" and "shall not" have specific meaning,
and throughout the document are in bold italic. Looks
like someone got a bit shall-ow with their search-and-replace
skills."
Picki
jeffphi
attends to details.
"Apparently this recruiter doesn't have a goal or metric
around proper brace selection and matching." You're hired.
UGG.LI admins
highlighted
"even KFC hat Breakpoints deployed in Prod now ..."
I wa...
Take me to this post.
April 03, 2026
Making a Type Checker/LSP for Nix
Building a TypeScript-style type checker and LSP for Nix with algebraic subtyping and negation types...
Take me to this post.
April 03, 2026
Building MCP servers with Entra ID and pre-authorized clients
The Model Context Protocol (MCP) gives AI agents a standard way to call external tools, but things get more complicated when those tools need to know who the user is. In this post, I’ll show how to build an MCP server with the Python FastMCP package that authenticates users with Microsoft Entra ID when they connect from a pre-authorized client such as VS Code.
If you need to build a server that works with any MCP clients, read my previous blog post. With Microsoft Entra as the authorization ser...
Take me to this post.
April 02, 2026