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)