【ABP框架系列学习】N层架构(3)
目录
分布式服务层(Distributed Service Layer)
0.引言
应用程序的分层是一种广泛接受的技术, 可以降低复杂度和提高代码的可重用性。为了实现分层架构,ABP遵循领域驱动设计(DDD)原则。
1.DDD分层
领域驱动设计有四个基本的层:
- 表现层(Presentaiton Layer):为用户提供接口。使用应用层实现与用户交互。
- 应用层(Application Layer):表现层和领域层的中间者。协调业务对象以执行特定的应用程序任务。
- 领域层(Domain Layer):包含业务对象和规则,是整个应用程序的核心。
- 基础设施层:提供支持上层通用的技术能力,大部分是借助于第三方库
2.ABP应用构架模型
除了DDD,现代的应用程序架构还包括逻辑和物理层等。如下图是ABP建议并实施的模型,它不仅通过提供基类和服务来快速实现这个模型,而且还提供了启动模板直接开始这个模型。
客户端应用程序(Client Applications)
远程客户端通过HTTP APIs(API Controllers,OData Controllers,GraphQL终端)等将应用程序作为服务。远程客户端可以是SPA、移动APP、或第三方消费者等。该应用程序主要包括本地化和导航功能。
表现层(Presentation Layer)
ASP.NET [Core] MVC可以认为是表现层。它可以是物理层(通过HTTP APIs使用应用程序)或是逻辑层(直接注入和使用应用服务)。无论是哪一种情况,一般包括本地化(Location)、导航(Navigation)、对象映射(Object Mapping)、缓存(Caching)、配置管理(Configuration Manager)、审计日志(Audit Logging)等等。还包括授权(Authorization)、会话(Session)、功能(Features,对于多租户应用程序)以及异常处理(Exception Handling)。
分布式服务层(Distributed Service Layer)
该层主要通过远程APIs(如REST、OData、GraphQL等)服务于应用服务/领域功能。该层只是将HTTP请求转换为领域交互,或可使用应用服务来委托操作,而并不包含业务逻辑。通常包括授权(Authorization)、缓存(Caching)、审计日志(Audit Logging)、对象映射(Object Mapping)、异常处理(Exception Handling)、会话(Session)等。
应用层(Application Layer)
应用层主要包括使用领域层和领域对象(领域服务、实体...)来执行应用程序功能请求的应用服务。应用层使用DTO(数据传输对象)从表现层或分布式服务层获取或返回数据。包括授权(Authorization)、缓存(Caching)、审计日志(Audit Logging)、对象映射(Object Mapping)、会话(Session)等。
领域层
这是实现领域逻辑主要的层,包括执行业务/领域逻辑的实体(Entities)、值对象(Value Objects)、和领域服务(Domain Services)。它还包括规约(Specifications)和触发领域事件(trigger Domain Events),并定义了用于从数据源(通常是DBMS)读取和持久化实体的仓储接口(Repository Interfaces)。
基础设施层
基础设施层用于辅助其它层:包括实现仓储接口(Repository Interfaces,如EF Core)实际操作数据库。还可能包括与供应商(vendor)的集成,以便发送电子邮件等。基础设施层是最下、也是不严格的一层,实际上是通过实现它们的抽象概念来支持其他层。
3.使用ABP项目模版快速生成应用程序
1.打开网址【Startup Templates】
2.依次选择ASP.NET Core 2.x >> .NET CORE(Cross Plateform) >> Multi Page Web Application,输入项目名称:XXX.FirstABP、验证码,点击创建项目按钮。
4.解压并用Visual Studio 2017打开,启动程序后VS会自动还原项目所需要的包,wait for a minute......使用ABP项目模版生成的解决方案如下:
5.设置【XXX.FirstABP.Web.MVC】为启动项目,打开appsetting.json文件修改连接字符串,如下:
6.打开【程序包管理控制台】,默认项目选择【XXX.FirstABP.EntityFrameworkCore】,在命令行依次输入:Add-Migration "FirstABP"、Update-Database,wait for a minute...
7.执行步骤6的操作后,默认生成了ABP的数据。
8.回到Visual Studio 2017,按F5运行程序...有惊喜哟,登录界面出现了,输入admin/123qwe,点击登录。
9.如图,进入主界面。至此,利用ABP项目模板快速生成了应用程序,主要有租户管理、用户管理、角色管理等功能模块。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(译)第一次Android开发单飞
原文地址:Flying Solo with Android Development 原文作者:Anita Singh 两年半之前,在一个由四个人组成的 Android 团队的帮助下,我开始从后端开发转向移动开发。一年之后,我加入了一个已经完成了B轮融资的初创公司,在那里主要做 Android 开发的工作。在一个小团队里工作,既能很好地保持独立,还不耽误向同事学习。 但随后,五个月前,我从原本的小团队跳槽到了一个“根本没有团队”的地方,我去的这家是刚刚成立的创业公司,只有六个人,而我是其中唯一的Android 工程师。在这个新的岗位,我从零开始完成了 Winnie,这个 APP 最近已经发布 了! 结果证明这是一个大飞跃。单飞一直是一个挑战,但它也带来了很多回报。一路走来,我发现独自工作是有利有弊的。不过最重要的是,你可以做一些事情来帮助自己走向成功。这里有一些目前为止已经帮到我的策略。 跟社区保持接触 业余不忘充电 对单飞的担心之一是,我已经习惯了以前的角色,担心没有人能一起讨论新的想法并且给我出主意。 好消息是有很多在线资源可以拓展你的知识和视野。 从DroidCon、360|AnD...
- 下一篇
ABP框架 - 介绍
原文: ABP框架 - 介绍 文档目录 本节内容: 简介 一个快速示例 其它特性 启动模板 如何使用 简介 我们总是对不同的需求开发不同的应用。但至少在某些层面上,一次又一次地重复实现通用的和类似的功能。如:授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审核日志等功能。所以我们创建架构和最佳实践,如分层和模块架构,DDD,依赖注入等,并尝试开发应用时基于一些约定。 由于所有这些是非常耗时而且很难单独创建并可适用于每个项目,许多公司创建自己的框架,他们用自己的框架能快速开发新应用而且不出错。但不是所有的公司都是幸运的,大部分公司没有时间,预算和团队来开发好的框架。他们甚至都没有可能创建一个框架,因为编写文档,培训开发人员和维护框架都是非常困难的。 ASP.NET Boilerplate (ABP)是一个开源并且有丰富文档的应用框架,开发宗旨是:“为所有公司,所有开发人员,开发出一个通用框架!”,而且不只是一个框架,同时提供一个强大的基于DDD的构架模型和最佳实践。 一个快速示例 让我们从一个简单的类来体会一下ABP带来的便利: public class Task...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装