码迷,mamicode.com
首页 > 其他好文 > 详细

入门ABP——多层架构体系介绍

时间:2019-07-06 15:02:08      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:ali   number   app   framework   部分   repo   out   display   lin   

一、ABP遵循DDD(领域驱动设计)的原则

? 展现层(Presentation):提供一个用户界面,实现用户交互操作。? 应用层(Application):进行展现层与领域层之间的协调,协调业务对象来执行特定的应用程序的任务。它不包含业务逻辑。
? 领域层(Domain):包括业务对象和业务规则,这是应用程序的核心层。
? 基础设施层(Infrastructure):提供通用技术来支持更高的层。例如基础设施层的仓储(Repository)可通过 ORM 来实现数据库交互。根据实际需要,可能会有额外添加的层。例如:
? 分布式服务层(Distributed Service):用于公开应用程序接口供远程客户端调用。比如通过 ASP.NET Web API 或 WCF 来实现。这些都是常见的以领域为中心的分层体系结构。不同的项目在实现上可能会有细微的差别。
 

二、领域层介绍

其实领域层也就是我们常说的业务层,而且所有的业务规则在此实现。
  包含:实体(Entity)仓储(Repository)领域服务(Domain service)领域事件(Domain Event)工作单元(Unit of Work);
  实体:业务领域的数据与操作,通过映射成数据库表;
1 public class AgentDto : Entity<int>
2    {
3        public string Name { getset; }
4        public string ShortName { getset; }
5        public string Mobile { getset; }
6        public string Linkman { getset; }
7    }
  仓储:操作数据库进行数据存取、更新删除等;
  领域服务:当处理的业务规则跨越两个实体,应该写在领域服务方法里面;
  领域事件:在领域层有些特定情况发生时可以触发领域事件,并且在相应地方捕获并处理它们;
  工作单元:工作单元是一种设计模式,用于维护一个由已经被修改(如增加、删除和更新等)的业务对象组成的列表。它负责协调这些业务对象的持久化工作及并发问题。
 

三、应用层介绍

  应用层提供一些应用服务(Application Services)方法供展现层调用。一个应用服务方法接收一个 DTO(数据传输对象)作为输入参数,使用这个输入参数执行特定的领域层操作,并根
据需要可返回另一个 DTO。在展现层到领域层之间,不应该接收或返回实体(Entity)对象,应该进行 DTO 映射。一个应用服务方法通常被认为是一个工作单元(Unit of Work)。用户输入
参数的验证工作也应该在应用层实现。ABP 提供了一个基础架构让我们很容易地实现输入参数有效性验证。建议使用一种像 AutoMapper 这样的工具来进行实体与 DTO 之间的映射。
 

四、基础设施层

  当在领域层中为定义了仓储接口,应该在基础设施层中实现这些接口

五、WEB与展示层

 Web 层使用 ASP.NET MVC 和 Web API 来实现。可分别用于多页面应用程序(MPA)和单
页面应用程序(SPA)。
 

一般步骤
1.创建实体 Core 实体也是领域的一部分 例如Person 属性 { get ;set; }
2.创建DbContext EntityFramework 将实体类添加到IDSet
3.通过Database Migrations创建数据库表 Configuration.cs Code First
4.在Migrations文件夹下生成文件 Add-Migration InitialCreate Update-Database
5.定义仓储接口 Core IReposotory 泛型接口 定义增删改查方法
6.实现仓储类 Reposotory中实现定义
7.建立应用服务(Application Services) 在ApplicationShare中定义ITaskAppService继承自IApplicationService,TaskAppService实现 ABP自动为这个类提供一些功能特性(比如依赖注入和参数有效性验证)
8.数据验证 ApplicationShare 实现了IInputDto或IValidate接口
如果你觉得对你有帮助,欢迎赞赏[1]

入门ABP——多层架构体系介绍

标签:ali   number   app   framework   部分   repo   out   display   lin   

原文地址:https://www.cnblogs.com/llw1996/p/11142630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!