多层架构

介绍

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

领域驱动设计层

领域驱动设计(DDD)中有四个基本层:

ASP.NET Boilerplate应用程序体系结构模型

除了DDD之外,现代架构应用程序中还有其他逻辑层和物理层。为ASP.NET Boilerplate应用程序建议并实现了以下模型。ASP.NET Boilerplate不仅通过提供基类和服务来简化实现此模型,还提供了直接从此模型开始的启动模板

ASP.NET Boilerplate NLayer架构

客户应用

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

表现层

ASP.NET [Core] MVC(模型 - 视图 - 控制器)可以被认为是表现层。它可以是物理层(通过HTTP API使用应用程序)或逻辑层(直接注入和使用应用程序服务)。在任何一种情况下,它都可以包括 本地化导航, 对象映射, 缓存配置管理审计日志记录等。它还涉及 授权会话, 功能(用于 多租户应用程序)和异常处理

分布式服务层

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

应用层

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

领域层

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

基础设施层

基础结构层使其他层工作:它实现仓储接口(例如使用Entity Framework Core)以实际使用真实数据库。它还可能包括与供应商集成以发送电子邮件等。该层不强制所有高层都需要直接实现或引用(并非所有层的下层),但实际上通过实现它们的抽象概念来支持其他层。

nidie.com.cn - 用心与你沟通