ABP vNext-核心根基-领域驱动DDD
Domain-Driven Design 领域驱动设计
领域驱动设计是客户需求驱动设计
什么是客户需求

领域产生

领域产生的实质:人和物关系
商品领域中包含哪些

商品两类数据 1、商品构造。2、商品操作。

领域驱动

把商品领域作为一个整体,给用户使用
为什么要使用领域驱动设计(DDD)
主要目的:解决复杂性系统需求问题


复杂性系统如何使用DDD

复杂性系统为什么要使用DDD(4层架构)
电商系统三层架构

电商系统DDD架构

复杂电商系统中如何落地DDD


落地DDD-领域层

落地DDD-应用层

落地DDD-显示层

落地DDD-基础设施层
EntityFrameworkCore
使用ABP vNext落地DDD

ABP vNext层次依赖关系


1、Domain.Shared 所有项目直接或间接依赖此项目.此项目中的所有类型都可以被其它项目所引用.
2、Domain 仅依赖Domain.Shared项目,因为Domain.Shared本就属于领域层的一部分.例如,Domain.Shared项目中的枚举类型 IssueType 被Domain项目中的Issue实体所引用.
3、Application.Contracts 依赖Domain.Shared项目,可以在DTO中重用Domain.Shared中的类型.例如,Domain.Shared项目中的枚举类型 IssueType 同样被Contracts项目中的CreateIssueDtoDTO所引用.
4、Application 依赖Application.Contracts项目,因为此项目需要实现应用服务的接口及接口使用的DTO.另外也依赖5、
5、Domain项目,因为应用服务的实现必须依赖领域层中的对象.
6、EntityFrameworkCore 依赖Domain项目,因为此项目需要将领域对象(实体或值对象)映射到数据库的表,另外还需要实现Domain项目中的仓储接口.
7、HttpApi 依赖Application.Contracts项目,因为Controllers需要注入应用服务.
8、HttpApi.Client 依赖Application.Contracts项目,因为此项目需要是使用应用服务.
9、Web 依赖HttpApi项目,因为此项目对外提供HTTP APIs.另外Pages或Components 需要使用应用服务,所以还间接依赖了Application.Contracts项目
ABP vNext-DDD内部调用原理

本文来自博客园,作者:龙猫•ᴥ•,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/18945969

浙公网安备 33010602011771号