当前位置: 移动技术网 > IT编程>开发语言>.net > ABP之N层架构

ABP之N层架构

2018年08月17日  | 移动技术网IT编程  | 我要评论

板儿叔,javascript设计模式,圣洁禁忌

介绍

应用程序代码库的分层是一种广泛接受的技术,有助于降低复杂性并提高代码的可重用性。 为了实现分层体系结构,asp.net boilerplate遵循领域驱动设计(ddd)的原则。

领域驱动设计(ddd)

领域驱动设计有四个基本层

表现层:提供用户界面,并使用应用层来进行用户交互

应用层:相当于表现层和领域层的“中介”,处理业务对象以执行特定的应用程序任务

领域层:包含业务对象和他们的规则,是应用程序的核心

基础设施层:提供一些通常的技术功能,主要使用第三方库来支持更高层的功能。

asp.net boilerplate应用程序体系结构模型

除了ddd,应用程序架构中还有其他一些逻辑层和物理层。下图中的模型是在abp应用程序中是实现的。abp不仅通过提供基类和服务来简化此模型,还提供了直接开始此模型架构的启动模板。

客户端应用程序

这些是通过http api(api控制器,odata控制器,甚至可能是graphql端点)将应用程序用作服务的远程客户端。 远程客户端可以是spa(单页面应用程序),移动应用程序或第三方消费者。 可以在此应用程序内完成本地化(localization)和导航(navigation)。

 表现层

asp.net[core] mvc (model-view-controller) 可以被任务是表现层。它可以是物理层(通过http api使用应用程序)或逻辑层(直接注入和使用应用程序服务)。无论在何种情况下,它都可以包含本地化,导航,对象映射,配置关咯,审计日志等等。它还会处理授权,会话,功能(用于多租户应用程序)和异常处理。

分布式服务层

该层用于通过rest,odata,graphql...远程api提供应用程序/域功能。他们不包含业务逻辑,只是将http请求转换为域交互,或者可以使用应用程序服务来委派操作。该层通常包含授权,缓存,审计日志,对象映射,异常处理,session会话等。

应用程序层

应用程序层主要包括使用域层和域对象(域服务,实体...)来执行所请求的应用程序功能的应用程序服务。 它使用数据传输对象从表示或分布式服务层获取数据并将数据返回。 它还可以处理授权,缓存,审计日志,对象映射,会话等...

领域层

这是实现我们的域逻辑的主要层。 它包括实体,值对象和域服务,以执行业务/域逻辑。 它还可以包括规范并且可以触发域事件。 它定义了仓储接口,以便从数据源(通常是dbms)读取和保留实体。

基础设施层

基础设施层就是帮助其他层工作:它实现仓储接口(例如使用ef core)来使用真实的数据库.它还可能包括给供应商发送电子邮件的集成等。这不是图层下面的严格图层,但实际上是通过实现他们的抽象概念来支持其他图层。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网