dotnet-design-pattern-review
Comprehensive C#/.NET design pattern analysis with actionable improvement recommendations.
- Evaluates six core patterns: Command, Factory, Dependency Injection, Repository, Provider, and Resource patterns against GoF and SOLID principles
- Analyzes architecture compliance including namespace conventions, project separation, async/await patterns, and structured logging implementation
- Reviews code quality across security, testability, maintainability, and performance dimensions with specific focus on primary constructors and ConfigureAwait usage
- Identifies missing or incorrectly implemented patterns and suggests concrete refactoring strategies aligned with .NET best practices
- Checks XML documentation, resource file organization, input validation, and credential handling without modifying the original code
.NET/C# Design Pattern Review
Review the C#/.NET code in ${selection} for design pattern implementation and suggest improvements for the solution/project. Do not make any changes to the code, just provide a review.
Required Design Patterns
- Command Pattern: Generic base classes (
CommandHandler<TOptions>),ICommandHandler<TOptions>interface,CommandHandlerOptionsinheritance, staticSetupCommand(IHost host)methods - Factory Pattern: Complex object creation service provider integration
- Dependency Injection: Primary constructor syntax,
ArgumentNullExceptionnull checks, interface abstractions, proper service lifetimes - Repository Pattern: Async data access interfaces provider abstractions for connections
- Provider Pattern: External service abstractions (database, AI), clear contracts, configuration handling
- Resource Pattern: ResourceManager for localized messages, separate .resx files (LogMessages, ErrorMessages)
Review Checklist
- Design Patterns: Identify patterns used. Are Command Handler, Factory, Provider, and Repository patterns correctly implemented? Missing beneficial patterns?
- Architecture: Follow namespace conventions (
{Core|Console|App|Service}.{Feature})? Proper separation between Core/Console projects? Modular and readable? - .NET Best Practices: Primary constructors, async/await with Task returns, ResourceManager usage, structured logging, strongly-typed configuration?
- GoF Patterns: Command, Factory, Template Method, Strategy patterns correctly implemented?
More from github/awesome-copilot
git-commit
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
30.2Kgh-cli
GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.
21.2Kprd
Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.
17.4Kdocumentation-writer
Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.
17.4Kexcalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
16.4Krefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
16.1K