Cap tool-call loops explicitly

Set a hard iteration limit on automatic function invocation and treat hitting it as an explicit application outcome.

August 22, 2026 · 2 min · Lukas Walter

Embeddings in .NET

How to generate text embeddings with Microsoft.Extensions.AI and keep the model, dimensions, comparison metric, and indexing behavior compatible.

August 19, 2026 · 11 min · Lukas Walter

Designing an AI Service Layer

How to place model access, prompts, retrieval, tools, and application policy behind a maintainable use-case boundary in a .NET application.

August 12, 2026 · 11 min · Lukas Walter

Use App Configuration for operational switches

Keep runtime switches and adjustable operational settings in Azure App Configuration instead of requiring a deployment for every change.

August 11, 2026 · 2 min · Lukas Walter

Validate tool arguments at the execution boundary

Treat model-generated tool arguments as untrusted input even when they satisfy the generated schema and bind successfully to the expected C# types.

August 11, 2026 · 2 min · Lukas Walter

Treat CORS as a browser boundary, not API authorization

Use CORS to control browser-script access across origins, while enforcing API permissions with authentication and authorization.

August 2, 2026 · 2 min · Lukas Walter

Set request body limits intentionally

Choose global and endpoint-specific request body limits instead of inheriting accidental defaults for uploads and APIs.

July 29, 2026 · 3 min · Lukas Walter

Stop Letting Provider SDKs Define Your .NET AI Architecture

How Microsoft.Extensions.AI keeps provider SDKs at the edge of .NET applications through shared abstractions, dependency injection, and middleware.

July 29, 2026 · 9 min · Lukas Walter

Treat uploaded files as untrusted

Keep uploads quarantined until required metadata, content, and resource checks succeed, while treating client filenames as untrusted.

July 29, 2026 · 2 min · Lukas Walter

Use streaming for large or frequent uploads

Use MultipartReader when buffered ASP.NET Core uploads put too much pressure on memory, temporary-disk capacity, or disk I/O.

July 29, 2026 · 3 min · Lukas Walter