What problem does it solve? Writing C# and .NET code without established conventions leads to mutable models, blocking async calls, untestable services, and configuration scattered across string keys. This Skill provides a consistent set of idiomatic patterns so .NET applications stay maintainable, testable, and free of common pitfalls like deadlocks and swallowed exceptions. ## Core Features & Use Cases - Async/Await Patterns: Enforces async-all-the-way with CancellationToken support and parallel operations via Task.WhenAll, avoiding deadlock-prone .Result and .Wait() calls. - Architecture Patterns: Covers dependency injection with interface-based abstractions, the Options pattern for strongly-typed configuration, the Result pattern for explicit success/failure, and repository pattern implementations with EF Core. - ASP.NET Core Guidance: Includes middleware pipelines, Minimal API route groups, guard clauses, and an anti-patterns table with concrete fixes. - Use Case: When refactoring a legacy ASP.NET Core service that blocks on async calls and uses mutable DTOs, apply these patterns to convert it to immutable records, constructor injection, and proper async flows. ## Quick Start Review my C# OrderService class and refactor it to follow idiomatic .NET patterns including async best practices and dependency injection.