Provider Independence from Day One

A C# implementation for keeping provider coupling at explicit boundaries while making model capabilities and provider-specific behavior visible.

August 25, 2026 · 12 min · Lukas Walter

Use concurrency tokens to detect lost updates

Make stale writes fail explicitly instead of silently overwriting newer database state.

August 25, 2026 · 3 min · Lukas Walter

Primary constructor parameters are not automatically properties

A primary constructor parameter stays a parameter. Declare a property or field when the value should be an explicit member of the type.

August 24, 2026 · 2 min · Lukas Walter

Separate ingestion health from retrieval readiness

A failed ingestion run should not stop retrieval while an accepted index remains queryable and eligible to serve.

August 23, 2026 · 5 min · Lukas Walter

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