Day14: 搭建企业标准的DDD 简洁版四层架构

正式项目搭建:Admin.NET.API(项目名)

1. 项目说明

  • 项目名称:Admin.NET.API
  • 用途:企业级后台管理系统 API(求职最通用项目)
  • 架构:DDD 四层架构国内.NET 公司 90% 使用)
  • 版本:.NET 6/7/8 均可

2. 项目结构(严格按照这个建)

复制代码
Admin.NET.API(总解决方案)
├── Admin.NET.API              // 【API层】接口入口、控制器、中间件
├── Admin.NET.Application      // 【应用层】业务逻辑、服务、DTO
├── Admin.NET.Domain           // 【领域层】实体、枚举、接口、核心规则
├── Admin.NET.Infrastructure   // 【基础层】数据库、第三方服务、工具类

3. 手动创建步骤(直接照做)

3.1、通过命令行创建

  1. 新建文件夹:Admin.NET.API

  2. 打开 cmd / 终端,进入文件夹执行:

    1. 创建解决方案

    dotnet new sln -n Admin.NET.API

    2. 创建4个类库/API项目

    dotnet new webapi -n Admin.NET.API
    dotnet new classlib -n Admin.NET.Application
    dotnet new classlib -n Admin.NET.Domain
    dotnet new classlib -n Admin.NET.Infrastructure

    3. 所有项目添加到解决方案

    dotnet sln add Admin.NET.API/Admin.NET.API.csproj
    dotnet sln add Admin.NET.Application/Admin.NET.Application.csproj
    dotnet sln add Admin.NET.Domain/Admin.NET.Domain.csproj
    dotnet sln add Admin.NET.Infrastructure/Admin.NET.Infrastructure.csproj

    4. 项目依赖关系(核心!不能错)

    API层 依赖 应用层

    dotnet add Admin.NET.API reference Admin.NET.Application

    应用层 依赖 领域层

    dotnet add Admin.NET.Application reference Admin.NET.Domain

    基础层 依赖 领域层

    dotnet add Admin.NET.Infrastructure reference Admin.NET.Domain

    API层 依赖 基础层

    dotnet add Admin.NET.API reference Admin.NET.Infrastructure

3.2、纯 VS 图形化操作步骤

一、打开 Visual Studio 2022

选择:创建一个新项目

第一步:创建解决方案(空解决方案)
  1. 搜索模板:空白解决方案
  2. 项目名称:Admin.NET.API
  3. 位置自己选(比如 D:\Projects\Admin.NET.API
  4. 点击 创建

现在你有了一个空的解决方案,接下来往里面添加 4 个项目

二、添加 4 个项目(严格按顺序)
1. 添加 API 层(Web API)

右键解决方案 → 添加 → 新建项目

  • 模板:ASP.NET Core Web API
  • 名称:Admin.NET.API
  • 框架:.NET 6 / 7 / 8 任选
  • 取消勾选 配置 HTTPS(学习阶段方便)
  • 创建
2. 添加 Application 层(类库)

右键解决方案 → 添加 → 新建项目

  • 模板:类库(C#)
  • 名称:Admin.NET.Application
  • 框架:和上面保持一致
  • 创建
3. 添加 Domain 层

同上:

  • 名称:Admin.NET.Domain
4. 添加 Infrastructure 层

同上:

  • 名称:Admin.NET.Infrastructure

三、设置项目依赖(最关键!不能乱)

在 VS 里用鼠标操作:

依赖规则(必须严格)
  • API 层 引用 → Application + Infrastructure
  • Application 引用 → Domain
  • Infrastructure 引用 → Domain
  • Domain 不引用任何人
鼠标操作方法
  1. 右键项目 → 项目依赖
  2. 或右键 → 添加 → 项目引用
  3. 勾选要依赖的项目 → 确定
最终依赖关系
复制代码
Admin.NET.API
   ↓        ↓
Application Infrastructure
        ↓
      Domain
四、建好后你的解决方案结构长这样
复制代码
Admin.NET.API (解决方案)
├─ Admin.NET.API          // WebAPI
├─ Admin.NET.Application   // 类库
├─ Admin.NET.Domain       // 类库
├─ Admin.NET.Infrastructure // 类库

4. 然后把之前的代码丢进去

  • Domain → 放枚举、实体、仓储接口
    • Entities【文件夹】
    • Enums
    • Interfaces
  • Application → 放服务、DTO(数据传输对象)、扩展方法
    • DTOs
    • Services
    • Extensions
  • Infrastructure → 放过滤器、中间件、统一返回 R<T>(通用工具)
    • Filters
    • Commons
    • Middlewares
  • API → 控制器、Program.cs
    • Controllers
相关推荐
霍格沃兹测试开发学社测试人社区12 小时前
Node.js 浏览器引擎 + Python 大脑:Playwright 混合架构爬虫系统深度解析
python·架构·node.js
梦帮科技12 小时前
Rust+Tauri+EVM:构建下一代内存安全级数字版权(DRM)主权音频网络与跨链金融系统的技术实践与全景架构
网络·安全·架构·rust·区块链·音视频·web3.py
mCell21 小时前
你以为短链接只是 Hash + 301/302?
后端·算法·架构
记忆停留w1 天前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
财财源源1 天前
.NET 程序保护实战系列01-流水线架构与保护引擎总览
架构·.net
KaMeidebaby1 天前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
深圳恒讯1 天前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
龙亘川1 天前
开源本地 AI 智能体网关 OpenClaw 深度实践:架构解析、全场景部署与自动化落地指南
人工智能·架构·开源·openclaw
时代的狂1 天前
如何理解 C# 的 async 和 await
c#·.netcore·async·await
Sirius Wu1 天前
OpenClaw(UpClaw)三层Tool全链路治理深度详解
网络·人工智能·架构·aigc