MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Dotnet-Best-Practices

Dotnet-Best-Practices是一款code方向的AI技能,核心价值是Ensure ,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Ensure .NET/C# code meets best practices for the solution/project.

Last verified on: 2026-05-30
mkdir -p ./skills/dotnet-best-practices && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/dotnet-best-practices/SKILL.md -o ./skills/dotnet-best-practices/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# .NET/C# Best Practices


Your task is to ensure .NET/C# code in ${selection} meets the best practices specific to this solution/project. This includes:


Documentation & Structure


- Create comprehensive XML documentation comments for all public classes, interfaces, methods, and properties

- Include parameter descriptions and return value descriptions in XML comments

- Follow the established namespace structure: {Core|Console|App|Service}.{Feature}


Design Patterns & Architecture


- Use primary constructor syntax for dependency injection (e.g., `public class MyClass(IDependency dependency)`)

- Implement the Command Handler pattern with generic base classes (e.g., `CommandHandler<TOptions>`)

- Use interface segregation with clear naming conventions (prefix interfaces with 'I')

- Follow the Factory pattern for complex object creation.


Dependency Injection & Services


- Use constructor dependency injection with null checks via ArgumentNullException

- Register services with appropriate lifetimes (Singleton, Scoped, Transient)

- Use Microsoft.Extensions.DependencyInjection patterns

- Implement service interfaces for testability


Resource Management & Localization


- Use ResourceManager for localized messages and error strings

- Separate LogMessages and ErrorMessages resource files

- Access resources via `_resourceManager.GetString("MessageKey")`


Async/Await Patterns


- Use async/await for all I/O operations and long-running tasks

- Return Task or Task<T> from async methods

- Use ConfigureAwait(false) where appropriate

- Handle async exceptions properly


Testing Standards


- Use MSTest framework with FluentAssertions for assertions

- Follow AAA pattern (Arrange, Act, Assert)

- Use Moq for mocking dependencies

- Test both success and failure scenarios

- Include null parameter validation tests


Configuration & Settings


- Use strongly-typed configuration classes with data annotations

- Implement validation attributes (Required, NotEmptyOrWhitespace)

- Use IConfiguration binding for settings

- Support appsettings.json configuration files


Semantic Kernel & AI Integration


- Use Microsoft.SemanticKernel for AI operations

- Implement proper kernel configuration and service registration

- Handle AI model settings (ChatCompletion, Embedding, etc.)

- Use structured output patterns for reliable AI responses


Error Handling & Logging


- Use structured logging with Microsoft.Extensions.Logging

- Include scoped logging with meaningful context

- Throw specific exceptions with descriptive messages

- Use try-catch blocks for expected failure scenarios


Performance & Security


- Use C# 12+ features and .NET 8 optimizations where applicable

- Implement proper input validation and sanitization

- Use parameterized queries for database operations

- Follow secure coding practices for AI/ML operations


Code Quality


- Ensure SOLID principles compliance

- Avoid code duplication through base classes and utilities

- Use meaningful names that reflect domain concepts

- Keep methods focused and cohesive

- Implement proper disposal patterns for resources

🎯 Best For

  • Claude users
  • GitHub Copilot users
  • Software engineers
  • Development teams
  • Tech leads

💡 Use Cases

  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Dotnet-Best-Practices to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Is Dotnet-Best-Practices compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Dotnet-Best-Practices?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Dotnet-Best-Practices?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/dotnet-best-practices/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills