此注册表固定版本所收录的最新上游作者日期。

dotnet-best-practices

已同步 v1.1.0 许可证: MIT 来源: github/awesome-copilot/skills/dotnet-best-practices 提交: 4742f26 收录的最新变更:

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

摘要

用途
协助 .NET/C# 代码遵循项目在文档、架构、相依性注入、异步作业、测试、设置、本地化、记录、安全性与可维护性方面的惯例。
使用时机
在实作或查看涉及服务、测试、设置、异步作业、错误处理或其他项目惯例的 .NET/C# 变更时,请使用此指引。
输出结果
产出的代码会遵循适用于文档、设计、服务、测试、设置、异步作业、记录、安全性与资源管理的项目惯例。
上游变更(3 条,最新收录 2026-02-19)
caab1f6 Convert all prompts to skills and update plugin manifests 添加 .NET/C# 最佳实务技能,涵盖文档、架构、相依性注入、本地化、异步处理、测试、组态、Semantic Kernel、错误处理、安全性与代码品质。
2f9c96d Fix deprecated 'mode' attribute in prompt files by renaming to 'agent' (#441) 将提示词前置中继数据字段从 `mode` 改名为 `agent`,并保留值 `agent`。
e1c7c7a Add 18 new prompts files (#56) 添加 .NET/C# 最佳实务提示词,涵盖文档、架构、相依性注入、本地化、异步处理、测试、组态、Semantic Kernel、错误处理、安全性与代码品质。
npx skills add "lettucebo/Skills#v2.2.0@dotnet-best-practices" --full-depth

⚠ v2.2.0 发布后即可使用

.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 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

历史

v1.0.0 bootstrap
v1.1.0 baseline-verified 4742f26
v1.1.0 license-refresh 4742f26