ABP项目的分层

.Application 为应用层:构建服务
.Core 为领域层:定义实体,定义实体功能,实现实体功能,定义仓储接口
.EntityFrameworkCore 为数据库处理(EF层):实体与数据表的对应与配置,实现仓储接口
.Web.Core 为控制层:负责把应用服务自动解析为Controller
.Web.Host 为程序入口:系统配置(数据库连接,系统端口,日志框架等)

ABP项目开发中重要的角色和职责

实体: Entity : 与数据库对应
仓储: Repository : 操作实体, 实现基本的增删改查, 实现复杂的数据处理逻辑
领域服务: Manager : 调用Repository, 实现领域功能
应用服务: Service : 调用Repository和Manager以提供复杂的应用服务

领域驱动设计原理

个人理解的领域驱动设计的落地原理是:

1,领域层定义实体,并实现实体的功能

例如,一个用户有多个角色,一个角色有多个菜单的权限
用户有GetRole()功能获取用户的全部角色, 角色有GetMenu()功能获取角色的菜单

2,应用层调用领域层各实体的功能组成服务

例如开发“获取用户菜单“这个服务

  • 先调用用户的GetRole()功能获取用户全部的角色,
  • 再循环调用角色的GetMenu()功能得到用户的全部菜单

领域驱动设计实现过程

所以在APB中领域驱动的实现过程是:
1,在领域层定义实体Entity
2,在领域层定义仓储接口,在EF层实现仓储
3,在领域层实现实体的功能: xxxManager
4,在服务层调用xxxManager的各个方法组成服务

ABP的几个概念

Entity与数据库表对应,只包含基本的字段定义(命名,类型,主键,外键,长度限制等)
一个Manager只专注对应Entity可以实现的功能
一个应用服务往往需要多个Manager的功能组合在一起来实现

ABP入门教程(四)初探领域驱动设计相关推荐

  1. 初探领域驱动设计(1)为复杂业务而生

    概述 领域驱动设计也就是3D(Domain-Driven Design)已经有了10年的历史,我相信很多人或多或少都听说过这个名词,但是有多少人真正懂得如何去运用它,或者把它运用好呢?于是有人说,DD ...

  2. ddd java repository_初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  3. ABP学习实践(十六)--领域驱动设计(DDD)回顾

    ABP框架并没有实现领域驱动设计(DDD)的所有思想,但是并不妨碍用领域驱动的思想去理解ABP库框架. 1.领域驱动设计(DDD)与微服务(MicroService)的关系? 领域驱动设计(DDD)是 ...

  4. 初探领域驱动设计(Domain Driven Design)

    前言: 我个人在学习DDD的过程中,早期翻找各种资料的时候,看到了很多名词:战略设计.战术设计.聚合根.实体.值对象.界限上下文...这些繁多的名词定义配合上几乎少的可怜的实战例子,让我在翻阅了大量资 ...

  5. 【吐血推荐】领域驱动设计学习输出

    一.Hello DDD 刚开始接触学习「DDD - 领域驱动」的时候,我被各种新颖的概念所吸引:「领域」.「领域驱动」.「子域」.「聚合」.「聚合根」.「值对象」.「通用语言」.....总之一大堆有关 ...

  6. 领域驱动设计(DDD)架构演进和DDD的几种典型架构介绍(图文详解)

    我们生活中都听说了DDD,也了解了DDD,那么怎么将一个新项目从头开始按照DDD的过程进行划分与架构设计呢? 一.专业术语 各种服务 IAAS:基础设施服务,Infrastructure-as-a-s ...

  7. 领域驱动设计,让程序员心中有码(二)

    引子,软件工程没有银弹    上一篇博文领域驱动设计,让程序员心中有码,抛出了一个问题,领域驱动设计真的是万能的良方吗?对于这个问题,大家的答案无疑是一致的,作为一种非常受软件行业欢迎的软件思想,领域 ...

  8. 领域驱动设计详解:是什么、为什么、怎么做?

    简介:什么是领域驱动设计?传统分层架构在实际开发中存在哪些问题?业务开发人员如何设计并搭建自己的领域模型?阿里文娱技术专家战獒将为大家一一解答,并分享文娱在领域驱动设计上的实践. 一 什么是领域驱动设 ...

  9. 阿里资深架构师推荐 -- 如果正确的开启领域驱动设计

    简介: 什么是领域驱动设计?传统分层架构在实际开发中存在哪些问题?业务开发人员如何设计并搭建自己的领域模型?阿里文娱技术专家战獒将为大家一一解答,并分享文娱在领域驱动设计上的实践. 一 什么是领域驱动 ...

最新文章

  1. Python OpenCV学习笔记之:图像读取,显示及保存
  2. Spring冲刺计划会议
  3. 基本套接字总结(@function)
  4. 自己实现苹果安装app动画
  5. 萌宝出街,熊孩子逆袭小小“时髦精”
  6. spark应用程序转换_Spark—RDD编程常用转换算子代码实例
  7. reactJS -- 13 JSX样式与CSS的互转
  8. java图像在背景图移动_java – 在Swing中移动背景图像
  9. C# 连接 Sqlserver2005 Analysis Service的总结
  10. python pyecharts map不显示_pyecharts 地图不显示问题
  11. 关于Python3的namedtuple问题
  12. 设计模式学习与应用——单例模式
  13. Python数据分析与挖掘实战总结
  14. FPGA入门学习——流水灯
  15. 【转】OC门与线与逻辑(含逻辑图)
  16. EasyNVR无插件网页摄像机直播流媒体服务器对接海康8700平台视频出现RTSP视频无法接入的问题解决
  17. Java 根据身份证号获取性别、年龄、出生日期等信息
  18. 【操作系统原理-2014年清华陈渝老师】索引
  19. 开题报告、论文摘要、摘要翻译、论文结论怎么写?
  20. vue中element国际化语言切换

热门文章

  1. Ubuntu16.04安装谷歌拼音输入法
  2. Git迁移新仓库并保存历史提交记录
  3. 找字符串中出现次数最多的字符
  4. Pycharm如何打断点
  5. 华为云,如何带领企业成功上云?
  6. 鸿蒙系统底部任务栏无响应,电脑底部任务栏无响应怎么办
  7. android Textview 功能,Android:TextView的常用功能
  8. Android Studio 基础 之 简单获取手机端所有图片
  9. NPOI读写Excel,Word,PPT文件
  10. python和java哪个好找工作-短期找工作,编程语言是学习Python还是Java好呢?