惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
V
V2EX
博客园 - 司徒正美
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
爱范儿
爱范儿
博客园 - 聂微东
量子位
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Vercel News
Vercel News

博客园 - z5337

【转】Avalonia 12 最小信创项目模板 【转】Avalonia 周边介绍 【转】国产操作系统对 Avalonia 的支持情况 【转】国产操作系统优化篇 [openKylin] 入门知识点 【转】国产操作系统优化篇 [openKylin] 第一步 - Qt + VMware 【转】p2055dn 打印机配置 IP 地址 【转】Windows 锁屏后屏幕不熄灭排查 【转】既然 java 8 因为组件容易被攻击,.net core 也有大量第三方组件,是不是也容易出问题 【转】最小 web api 学习 【转】使用记事本区分图片格式 【转】蓝牙耳机的播放控制 【转】JoyToKey 键位映射 【转】[C#] 要从接口取时间,单个订单查询和批量查询,写一个接口还是两个接口合适? 【转】[C#] .net core 项目的目标框架设置 【转】[C#] 项目里的配置文件与选项对比 【转】[C#] GlobalUsing 的使用 【转】[.net core] 项目的 Windows 服务器部署 【转】《三字经》全文 【转】[IDEA] 调试时怎么判断使用哪个配置文件 【转】PO、DO、VO、BO、DTO、DAO、POJO 的区别 【转】[web]怎么移除网页最上层的水印 【转】[C#] 30+个.NET开发最佳实践 【转】[C#] WPF 保留选中的高亮色 【转】Windows Server 系统的桌面上显示 此电脑 图标 【转】[C#] 参数前加 in 的作用 【转】[C#] Enum 的 Flags 特性 【转】[C#] Tuples 元组介绍 【转】[C#] Record 的使用 【转】[C#] 预处理指令
【转】[C#] Web API 中的常见层次
z5337 · 2025-10-18 · via 博客园 - z5337

转自:阿里通义灵码

C# Web API 中的常见层次

  1. 表示层 (Presentation Layer)

    • 命名规范[项目名称].API 或 [项目名称].WebAPI
    • 用途: 包含控制器、中间件和 API 相关配置
    • 关键元素ControllersStartup.csProgram.cs、中间件配置
  2. 业务逻辑层 (Business Logic Layer / Service Layer)

    • 命名规范[项目名称].Services 或 [项目名称].Core
    • 用途: 包含业务逻辑和服务实现
    • 关键元素: 服务接口(如 IUserService)、服务类(如 UserService
  3. 数据访问层 (Data Access Layer / Repository Layer)

    • 命名规范[项目名称].Data 或 [项目名称].Repository
    • 用途: 处理数据访问操作和数据库交互
    • 关键元素: 仓储接口(如 IUserRepository)、仓储实现(如 UserRepository)、DbContext 类
  4. 领域/实体层 (Domain/Entity Layer)

    • 命名规范[项目名称].Domain 或 [项目名称].Entities
    • 用途: 包含数据模型、实体和领域对象
    • 关键元素: 实体类、枚举、值对象、领域事件
  5. 通用/共享层 (Common/Shared Layer)

    • 命名规范[项目名称].Common 或 [项目名称].Shared
    • 用途: 包含共享工具、常量和通用功能
    • 关键元素: 帮助类、扩展方法、常量、枚举
  6. DTOs/模型层 (DTOs/Models Layer)

    • 命名规范[项目名称].Models 或 [项目名称].DTOs
    • 用途: 包含数据传输对象和视图模型
    • 关键元素: 请求/响应模型、DTO 类

其他注意事项

  • 一些项目可能包含独立的应用层基础设施层
  • 对于单元测试,对应的测试项目通常命名为 [项目名称].Tests 或 [层名称].Tests
  • 精确的命名可能因团队偏好和项目需求而有所不同
  • 一些团队遵循更严格的命名规范,如 公司名.项目名.层名 格式