zoukankan      html  css  js  c++  java
  • ABP框架

    目录

    介绍

    在应用程序设计中,分层架构是一种被广泛使用的技术,它助于降低复杂度和提高代码的可重用性。在ABP框架中,使用了DDD(领域驱动设计)的原则来实现分层架构.

    DDD分层架构

    在DDD(领域驱动设计)架构模型中,有四个基础层。

    • 表现层: 用户访问接口。使用应用层来实现与用户交互。
    • 应用层: 应用层是表现层和领域层之间的媒介,它负责组织和编排业务对象来执行特定的应用任务。,
    • 领域层:定义业务对象、逻辑和规则,它是整个应用的核心。
    • 基础设施层:为上层提供通用的技术支持,大多数情况会使用第三方库。

    ABP架构模型

    在一个现代化的架构应用中,除了DDD模型的4个基础层(表现层、应用层、领域层、基础设施层)以外, 通常还有其他的一些逻辑层和物理层。下面的架构模型图是ABP建议使用并且已经实现的结构模型。ABP框架不仅提供了基类和服务来非常容易的实现此架构模型,并且已经提供了模板程序(参见ABP框架 - 我的第一个WEB API)来让我们直接在此架构模型上开始开发。
    images

    客户端

    远程客户端是应用服务的消费者,通过HTTP API的方式来调用应用服务。客户端可以是一个单页应用程序(SPA),一个移动APP,也可以是一个第三方的消费者。本地化和导航可以在客户端中实现。

    展现层

    ASP.NET (Core) MVC可以被认为是展现层。展现层可以是物理层(通过HTTP API来调用应用服务),也可以是一个逻辑层(直接注入并使用应用服务)。展现层一般提供本地化、导航、对象映射、缓存、配置管理、审计日志等这些功能。也可以处理授权、会话和异常。

    分布式服务层

    分布式服务层通过API(例如REST、OData、GraphQL)来为远程客户端提供应用服务功能。它不包含任务业务逻辑,仅仅是接收HTTP请求,然后调用相应的应用/领域服务来完成特定功能。分布式服务层一般包括授权、缓存、审计日志、对象映射、异常处理和会话等。

    应用层

    应用层主要包含应用服务,应用服务从展示层/分布式服务层接收输入DTO对象,然后调用领域层的特定操作,组合编排领域对象,并根据需要返回输出DTO给展示层/分布式服务层。应用层通常也会包括授权、缓存、审计日志、对象映射、会话等。

    领域层

    领域层主要用来实现业务逻辑,它包括领域实体、值对象、领域服务并执行业务逻辑。它也规约和领域事件。领域层定义了数据仓储接口来读取和持久化实体到数据源,但是领域层并不实现数据仓储。

    基础设施层

    领域层定义了数据仓储接口,基础设施层则通过Entity Framework(Core)/NHibernate与实际数据库交互来实现数据仓储接口。基础设施层并没有严格的定义,它里面实现的功能通常是提供给其他层使用的公共功能,比如发送邮件功能,就可以定义在基础设施层。

  • 相关阅读:
    读书笔记第四章
    读书笔记第三章
    读书笔记第二章
    读书笔记第一章
    第十章 读书笔记
    第九章 读书笔记
    第八章读书笔记
    第七章读书笔记
    第六章读书笔记
    第五章读书笔记
  • 原文地址:https://www.cnblogs.com/lcyhjx/p/8850172.html
Copyright © 2011-2022 走看看