dotnet-10-csharp-14
Modern .NET 10 and C# 14 patterns for minimal APIs, modular monoliths, and resilient applications.
- Covers C# 14 syntax (extension blocks,
fieldkeyword, null-conditional assignment) and .NET 10 minimal APIs with validation, TypedResults, and modular architecture - Includes security patterns: JWT authentication, CORS, rate limiting, middleware ordering, and RFC 9457 problem details
- Provides infrastructure guidance on Options pattern variants (IOptions, IOptionsSnapshot, IOptionsMonitor), HTTP resilience with standard handlers, Channels, health checks, and EF Core
- Documents mandatory patterns (always use TypedResults, ValidateOnStart, UtcNow) and anti-patterns to avoid (manual HttpClient, blocking async, N+1 queries)
- Includes integration testing with WebApplicationFactory and recommended libraries (MediatR, FluentValidation, Mapster, ErrorOr, Polly, Serilog)
.NET 10 & C# 14 Best Practices
.NET 10 (LTS, Nov 2025) with C# 14. Covers minimal APIs, not MVC.
Official docs: .NET 10 | C# 14 | ASP.NET Core 10
Detail Files
| File | Topics |
|---|---|
| csharp-14.md | Extension blocks, field keyword, null-conditional assignment |
| minimal-apis.md | Validation, TypedResults, filters, modular monolith, vertical slices |
| security.md | JWT auth, CORS, rate limiting, OpenAPI security, middleware order |
| infrastructure.md | Options, resilience, channels, health checks, caching, Serilog, EF Core, keyed services |
| testing.md | WebApplicationFactory, integration tests, auth testing |
| anti-patterns.md | HttpClient, DI captive, blocking async, N+1 queries |
| libraries.md | MediatR, FluentValidation, Mapster, ErrorOr, Polly, Aspire |
More from mhagrelius/dotfiles
building-tui-apps
Use when building interactive terminal dashboards or full-screen terminal applications; when implementing keyboard navigation, live data updates, or multi-panel layouts; when TUI is flickering, slow, or unresponsive; when handling terminal resize events
83developing-gtk-apps
Use when building GTK 4/libadwaita applications; before writing app boilerplate; when debugging threading, signals, or lifecycle issues; when setting up GSettings, resources, or packaging; delegates UI/widget decisions to designing-gnome-ui skill
69designing-gnome-ui
Use when designing, implementing, or modifying UI for GNOME apps; before writing UI code; when reviewing existing UI for HIG compliance; when working with GTK 4/libadwaita or styling Qt/PySide6 for GNOME
56using-typescript-lsp
Use when working with TypeScript or JavaScript code and typescript-lsp plugin is enabled - for finding references, checking types, navigating definitions, or verifying type correctness
47working-with-aspire
Use when building distributed apps with Aspire; orchestrating .NET, JavaScript, Python, or polyglot services; when environment variables or service discovery aren't working; when migrating from .NET Aspire 9 to 13+ or Community Toolkit; when seeing AddNpmApp deprecated errors; when OTEL not appearing in dashboard; when ports change on restart breaking OAuth; when configuring MCP server for AI assistants; when debugging Aspire apps and need to check resource status or logs
39working-with-ms-agent-framework
Use when building AI agents with Microsoft Agent Framework (Semantic Kernel + AutoGen unified); when implementing memory or context providers; when threads won't deserialize; when workflow checkpointing fails; when migrating from Semantic Kernel or AutoGen; when seeing ChatAgent or AgentThread errors
39