【转】[C#] Web API 中的常见层次
转自:阿里通义灵码
C# Web API 中的常见层次
-
表示层 (Presentation Layer)
- 命名规范:
[项目名称].API
或[项目名称].WebAPI
- 用途: 包含控制器、中间件和 API 相关配置
- 关键元素:
Controllers
、Startup.cs
、Program.cs
、中间件配置
- 命名规范:
-
业务逻辑层 (Business Logic Layer / Service Layer)
- 命名规范:
[项目名称].Services
或[项目名称].Core
- 用途: 包含业务逻辑和服务实现
- 关键元素: 服务接口(如
IUserService
)、服务类(如UserService
)
- 命名规范:
-
数据访问层 (Data Access Layer / Repository Layer)
- 命名规范:
[项目名称].Data
或[项目名称].Repository
- 用途: 处理数据访问操作和数据库交互
- 关键元素: 仓储接口(如
IUserRepository
)、仓储实现(如UserRepository
)、DbContext
类
- 命名规范:
-
领域/实体层 (Domain/Entity Layer)
- 命名规范:
[项目名称].Domain
或[项目名称].Entities
- 用途: 包含数据模型、实体和领域对象
- 关键元素: 实体类、枚举、值对象、领域事件
- 命名规范:
-
通用/共享层 (Common/Shared Layer)
- 命名规范:
[项目名称].Common
或[项目名称].Shared
- 用途: 包含共享工具、常量和通用功能
- 关键元素: 帮助类、扩展方法、常量、枚举
- 命名规范:
-
DTOs/模型层 (DTOs/Models Layer)
- 命名规范:
[项目名称].Models
或[项目名称].DTOs
- 用途: 包含数据传输对象和视图模型
- 关键元素: 请求/响应模型、DTO 类
- 命名规范:
其他注意事项
- 一些项目可能包含独立的应用层或基础设施层
- 对于单元测试,对应的测试项目通常命名为
[项目名称].Tests
或[层名称].Tests
- 精确的命名可能因团队偏好和项目需求而有所不同
- 一些团队遵循更严格的命名规范,如
公司名.项目名.层名
格式