configuration

Configuration patterns for .NET 10 applications. Covers the Options pattern, IOptionsSnapshot vs IOptions, secrets management, and environment-based configuration. Load this skill when setting up application configuration, managing secrets, binding configuration sections, or when the user mentions "

By codewithmukesh · 1,182 installs

npx skills add codewithmukesh/dotnet-claude-kit --skill configuration

Source repository · Upstream listing

Configuration Core Principles 1. Options pattern always — Never read IConfiguration directly in services. Bind configuration sections to strongly typed classes with validation. 2. Validate on startup — Use ValidateDataAnnotations() and ValidateOnStart() to catch misconfiguration before the first request. 3. Secrets never in source — Use user secrets in development, Azure Key Vault or environment variables in production. Never commit secrets to git. 4. Configuration layering — appsettings.json → appsettings.{Environment}.json → environment variables → user secrets. Later sources override earlier ones. Patterns Options Pattern Injecting Options Custom Validation (Complex Rules) Azure Key Vault (Production) Configuration for Multiple Environments Anti patterns Don't Read IConfiguration Directly Don't Put Secrets in appsettings.json Don't Skip Startup Validation Decision Guide Scenario Recommendation Binding config to class Options pattern with BindConfiguration Simple, immutable config IOptions<T Config that changes per request IOptionsSnapshot<T Background service watching config IOptionsMonitor<T Development secrets dotnet user secrets Production secrets Azure Key Vault or environment variables Validating config ValidateDataAnnotations() + ValidateOnStart() Multiple configs of same type Named options with IOptionsSnapshot<T .Get(name)