ABP之N层架构
介绍
应用程序代码库的分层是一种广泛接受的技术,有助于降低复杂性并提高代码的可重用性。 为了实现分层体系结构,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)来使用真实的数据库.它还可能包括给供应商发送电子邮件的集成等。这不是图层下面的严格图层,但实际上是通过实现他们的抽象概念来支持其他图层。
上一篇: 爆囧,遇到的都是''高人''呀!
下一篇: Python字符串逐字符或逐词反转方法
推荐阅读
-
ASP.NET MVC5网站开发之展示层架构(五)
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
ASP.NET MVC5网站开发之展示层架构(五)
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
-
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)
-
ABP之N层架构
-
abp(net core)+easyui+efcore仓储系统——展现层实现增删改查之控制器(六)
-
软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
-
项目架构之传统三层架构和领域模型三层架构(转)