Architecture
20 guides on Architecture.
The decisions taken once that are expensive to revisit: where conversation state lives, how many round trips a single turn really costs, which side of a process boundary a tool belongs on, and what adding a second tenant does to all of it.
Consuming MCP Servers from .NET: The Client Side
Most MCP writing is about building servers. The harder engineering is on the client — you are handing a model a tool list you did not write, from a process you did not start, and it can change under you at runtime.
Multi-Tenant AI Agents in .NET: Isolation That Actually Holds
Every tenant boundary you rely on in a normal web app — the connection string, the row filter, the claim — gets crossed differently once a model is in the loop. Here is where the leaks actually happen and what to do about each.
Human-in-the-Loop Approvals in Microsoft Agent Framework
An agent that can issue refunds needs a stop button. Agent Framework has two mechanisms for this — tool approval and workflow request ports — and picking the wrong one leaves you holding state you cannot survive a restart with.
Rate Limiting LLM Calls in .NET: Tokens, Not Requests
Provider quotas are measured in tokens per minute, but almost every .NET rate limiter counts requests. That mismatch is why your agent still gets 429s under a limiter that says it is doing its job.
Redacting PII Before It Reaches the Model: A .NET Pattern
Once a customer record leaves your process and lands in a model provider log, you cannot get it back. Here is a redaction layer for .NET that sits in front of the model, survives tool calls, and does not quietly break your prompts.
Vector Search in SQL Server 2025 with EF Core 10: One Less Database
SQL Server 2025 has a native vector type and EF Core 10 speaks it. For a lot of .NET teams that removes a whole moving part from the architecture — here is what it does well, and the ceiling you should check first.
Agentic RAG in .NET: When One Retrieval Is Not Enough
Classic RAG runs one search and hopes. Agentic RAG lets the model decide what to look up, how often, and when it has enough — here is what that costs and how to build it in C#.
Why Your .NET AI Agent Feels Slow (And What to Fix First)
Perceived latency in an agent is rarely the model. A latency budget for .NET agents — where the seconds actually go, measured, and the fixes ordered by what they return.
CodeAct in the Microsoft Agent Framework: What .NET Developers Need to Know
CodeAct collapses the tool-calling loop into one generated program and reports large latency and token savings — but it is Python-only today. What it is, why it works, and what a .NET team can use right now.
Model Routing and Fallback in .NET: One Interface, Several Models
Route each request to the cheapest model that can handle it, and fail over when a provider degrades — built on Microsoft.Extensions.AI with C# you can drop into an existing app.
RAG vs Fine-Tuning: How to Actually Decide (A .NET Engineer's Guide)
RAG or fine-tuning? A decision framework based on what your problem actually is — knowledge, behaviour, format or cost — plus what each one really costs to run on .NET.
Choosing a Vector Database for .NET: pgvector vs Qdrant vs Azure AI Search vs SQL Server
A practical comparison of the vector stores .NET can talk to — pgvector, Qdrant, Azure AI Search, SQL Server 2025, Redis, Cosmos DB and SQLite — and why the choice matters less than you think.
Azure OpenAI vs OpenAI: Which Should .NET Developers Use?
Azure OpenAI or the OpenAI API? A clear comparison for .NET developers — on data residency, authentication, models, and cost — with a straight recommendation.
Microsoft.Extensions.AI: The .NET AI Abstraction, Explained
Microsoft.Extensions.AI gives .NET one common interface for every AI provider. What IChatClient and IEmbeddingGenerator are, why they matter, and how to use them.
Adding Memory and State to Your .NET Agent
A stateless agent forgets everything between messages. How to give a .NET agent short-term memory with threads, persist it across sessions, and add long-term memory.
Choosing a Model for Your .NET Agent
GPT-class, small, or open-weight? A practical framework for picking the right LLM for a .NET agent, balancing capability, latency, cost, and where the model runs.
Function Calling vs MCP: When to Use Which in .NET
Should a tool be a C# method or an MCP server? A clear decision guide for .NET agents on when to use built-in function calling versus the Model Context Protocol.
Multi-Agent Orchestration in .NET: Graph Workflows Explained
Coordinating multiple AI agents by prompt alone is fragile. Here is how the Microsoft Agent Framework's graph-based workflows make multi-agent systems in .NET explicit, testable, and observable.
Securing AI Agents in .NET: Auth, Secrets, and Guardrails
An AI agent that can call tools is a new attack surface. A practical security checklist for .NET agents: authenticating callers, protecting secrets, and guardrailing tool use.
Semantic Kernel vs the Microsoft Agent Framework: Which Should You Use in 2026?
Semantic Kernel or the Microsoft Agent Framework? Since the 1.0 GA merge, the answer changed. A clear breakdown of what to use for new projects and how to migrate existing ones.