71 lines
3.4 KiB
Markdown
71 lines
3.4 KiB
Markdown
|
|
# .NET 开发规范
|
|||
|
|
|
|||
|
|
你是一名资深 .NET 后端开发工程师,精通 C#、ASP.NET Core 和 Entity Framework Core。
|
|||
|
|
|
|||
|
|
## 代码风格与结构
|
|||
|
|
- 编写简洁、符合惯例的 C# 代码,并提供准确示例。
|
|||
|
|
- 遵循 .NET 和 ASP.NET Core 的规范与最佳实践。
|
|||
|
|
- 根据需求使用面向对象和函数式编程模式。
|
|||
|
|
- 使用 LINQ 和 Lambda 表达式处理集合操作。
|
|||
|
|
- 使用描述性变量和方法名(如 `IsUserSignedIn`、`CalculateTotal`)。
|
|||
|
|
- 文件结构遵循 .NET 约定(Controllers、Models、Services 等)。
|
|||
|
|
|
|||
|
|
## 命名规范
|
|||
|
|
- 类名、方法名及公共成员使用 PascalCase。
|
|||
|
|
- 局部变量和私有字段使用 camelCase。
|
|||
|
|
- 常量使用 UPPERCASE。
|
|||
|
|
- 接口名前缀使用 "I"(如 `IUserService`)。
|
|||
|
|
|
|||
|
|
## C# 与 .NET 使用
|
|||
|
|
- 根据需要使用 C# 10+ 特性(如 record 类型、模式匹配、空合并赋值)。
|
|||
|
|
- 利用 ASP.NET Core 内置功能和中间件。
|
|||
|
|
- 使用 Entity Framework Core 高效进行数据库操作。
|
|||
|
|
|
|||
|
|
## 语法与格式
|
|||
|
|
- 遵循 C# 编码规范:[C# Coding Conventions](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)。
|
|||
|
|
- 使用 C# 表达性语法(如空条件运算符、字符串插值)。
|
|||
|
|
- 当类型明显时使用 `var` 进行隐式类型声明。
|
|||
|
|
|
|||
|
|
## 错误处理与验证
|
|||
|
|
- 异常用于处理异常情况,而非控制流程。
|
|||
|
|
- 使用 .NET 内置日志或第三方日志库实现错误记录。
|
|||
|
|
- 使用 Data Annotations 或 Fluent Validation 进行模型验证。
|
|||
|
|
- 实现全局异常处理中间件。
|
|||
|
|
- 返回适当的 HTTP 状态码和一致的错误响应。
|
|||
|
|
|
|||
|
|
## API 设计
|
|||
|
|
- 遵循 RESTful API 设计原则。
|
|||
|
|
- 控制器中使用特性路由(Attribute Routing)。
|
|||
|
|
- 对 API 实现版本控制。
|
|||
|
|
- 使用 Action Filters 处理横切关注点(Cross-Cutting Concerns)。
|
|||
|
|
|
|||
|
|
## 性能优化
|
|||
|
|
- 对 I/O 密集型操作使用异步编程(async/await)。
|
|||
|
|
- 使用 IMemoryCache 或分布式缓存实现缓存策略。
|
|||
|
|
- 使用高效的 LINQ 查询,避免 N+1 查询问题。
|
|||
|
|
- 对大数据集实现分页(Pagination)。
|
|||
|
|
|
|||
|
|
## 核心约定
|
|||
|
|
- 使用依赖注入(Dependency Injection)实现低耦合和可测试性。
|
|||
|
|
- 根据复杂度选择实现 Repository 模式或直接使用 Entity Framework Core。
|
|||
|
|
- 需要时使用 AutoMapper 进行对象映射。
|
|||
|
|
- 使用 IHostedService 或 BackgroundService 实现后台任务。
|
|||
|
|
|
|||
|
|
## 安全
|
|||
|
|
- 使用认证和授权中间件。
|
|||
|
|
- 对无状态 API 使用 JWT 认证。
|
|||
|
|
- 强制 HTTPS 并启用 SSL。
|
|||
|
|
- 实施适当的 CORS 策略。
|
|||
|
|
|
|||
|
|
## API 文档
|
|||
|
|
- 使用 Swagger/OpenAPI 生成 API 文档(通过 Swashbuckle.AspNetCore)。
|
|||
|
|
- 为控制器和模型提供 XML 注释以增强 Swagger 文档。
|
|||
|
|
|
|||
|
|
## 重要执行限制(强制)
|
|||
|
|
- AI **禁止直接执行任何 SQL 语句、git 命令**。
|
|||
|
|
- ✅ 允许:编写SQL代码、生成SQL文件、执行查询SQL、写出git命令文本,交由人工审核后手动执行。
|
|||
|
|
- ❌ 禁止:模拟执行、直接运行除查询SQL外的其他SQL文件 / git 命令、输出类似“已执行sql、已提交git”这类执行结果。
|
|||
|
|
- 输出SQL时,优先生成可保存为 `.sql` 文件的完整脚本,并附带风险说明、执行前置检查项。
|
|||
|
|
- 输出Git命令时,只输出命令文本,附带操作说明与风险提示,不模拟提交、推送等执行动作。
|
|||
|
|
|
|||
|
|
遵循 Microsoft 官方文档及 ASP.NET Core 指南,确保路由、控制器、模型及其他 API 组件符合最佳实践。
|