当前位置:首页 > 后端开发 > 正文内容

第60篇 abp结构介绍

邻居的猫1个月前 (12-09)后端开发1517

abp是一个开源且文档友爱的运用程序结构,供给了一个依据范畴驱动规划(DDD)的体系结构模型,能够支撑.net core和.net framework两种技能门户。

1.abp结构特色

1.1 依靠注入

这个部分运用 Castle windsor (依靠注入容器)来完成依靠注入,这个也是咱们常常运用IOC来处理的办法;

1.2 Repository仓储形式

已完成了Entity Framework、NHibernate、MangoDB、内存数据库等,仓储形式能够快速完成对数据接口的调用;

1.3 身份验证与授权办理

能够运用声明特性的办法对用户是否登录,或许接口的权限进行验证,能够经过一个很细粒度的办法,对各个接口的调用权限进行设置;

1.4 数据有效性验证

ABP主动对接口的输入参数目标进行非空判别,而且能够依据特点的请求信息对特点的有效性进行校验;

1.5 审计日志记载

记载咱们对每个接口的调用记载,以及对记载的创立、修正、删去人员进行记载等处理;

1.6 Unit Of Work作业单元形式

为运用层和仓储层的办法主动完成数据库事务,默许一切运用服务层的接口,都是以作业单元办法运转,即便它们调用了不同的存储目标处理,都是处于一个事务的逻辑里边;

1.7 反常处理

abp结构供给了一整套比较完善的流程处理操作,能够很便当的对反常进行进行记载和传递;

1.8 日志记载

能够运用Log4Net进行惯例的日志记载,便当咱们盯梢程序处理信息和错误信息;

1.9 多言语/本地化支撑

abp结构对多言语的处理也是比较友爱的,供给了对XML、JSON言语信息的装备处理;

2.0 Auto Mapping主动映射

这个是ABP的很重要的目标阻隔概念,经过运用AutoMaper来完成域目标和DTO目标的特点映射,能够阻隔两者的逻辑关系,可是又能轻松完成特点信息的赋值;

2.1 动态Web API层

运用这个动态处理,能够把Application Service 直接发布为Web API层,而不需要在负担的为每个事务目标手艺创立一个Web API的控制器,十分便当;

2.2 动态JavaScript的AJax署理处理

能够主动创立Javascript 的署理层来更便当运用Web Api,这个在Web层运用。

2.abp结构特别的功用

2.1 多租户支撑

(每个租户的数据主动阻隔,事务模块开发者不需要在保存和查询数据时写相应代码;

2.2 软删去支撑

承继相应的基类或完成相应接口,会主动完成软删去

2.3 体系设置存取办理

体系级、租户级、用户级,效果规模主动办理

2.4 EventBus事情总线

完成范畴事情(Domain Events)

3 abp结构分层架构图

项目程序分层架构图(范畴驱动规划)
image

不只能够适用web开发,也合适c/s开发;

  • 前端Web端能够运用Ant-Design(React)、IView(VUE)、Angular等不同的前端技能来承载界面出现层
  • 前端Client 桌面端能够运用MaterialDesign 规划规范,依照Prism或许MVMMLight 的MVVM结构结合运用起来

4 web api优先结构

ABP 结构的中心主要以.NET的后端技能栈为主线,尽管ASP.NET CORE MVC和 Web API 分成了两部分,可是他的动态发布为Web API有限的架构供给了更好的便当。

在当今盛行的展示层中,越来越不依靠于后端的技能完成,而侧重于Web API标准化的对接,依据JSON数据的交互处理。不论是以Ant-Design(React)、IView(VUE)、Angular等技能运用的Web前端,咱们能够看到这些架构很简单完成对Web API的标准接口对接。

5 abp结构的项目结构

ABP 结构包含了两个部分,一个根底的ABP结构,一个ABP根底结构上的扩展运用。供给了人员人员、人物、权限、会话、身份验证、多租户、日志记载等等内容,咱们一般指的ABP结构运用便是这个根底上扩展自己的事务项目。这个部分,咱们能够依据官网上进行必定的选项装备,然后下载运用。

根底结构组成部分:
image

扩展运用模板款式如下,需到官网下载

image

下载.net core 项目后,其间后端部分的项目视图如下所示
image

该项目主要是分为下面几个分层:

  • Application运用层:运用层供给一些运用服务(Application Services)办法供展示层调用。一个运用服务办法接纳一个DTO(数据传输目标)作为输入参数,运用这个输入参数履行特定的范畴层操作,并依据需要可回来另一个DTO。
  • Core范畴中心层,范畴层便是事务层,是一个项目的中心,一切事务规矩都应该在范畴层完成。这个项目里边,除了界说所需的范畴实体类外,其实能够界说咱们自己的自界说的仓储目标(相似DAL/IDAL),以及界说自己的事务逻辑层(相似BLL/IBLL),以及依据AutoMapper映射规矩等内容。
  • EntityFrameworkCore 实体结构中心层,这个项目不需要修正太多内容,只需要在DbContext里边参加对应范畴目标的仓储目标即可。
  • Migrator数据搬迁层,这个是一个辅佐创立的控制台程序项目,假如依据DB First,咱们能够运用它来创立咱们项目的初始化数据库。
  • Web.Core Web中心层,依据Web或许Web API的中心层,供给了对身份登陆验证的根底处理,没有其他内容。
  • Web.Core.Host Web API的宿主层,也是动态发布Web API的中心内容,另外在Web API里边整合了Swagger,使得咱们能够便当对Web API的接口进行调试。
  • Tests 单元测验层,这个供给了一些运用层目标的模仿测验,其间测验的数据库运用的是Entity Framework 的内存数据库,不影响实践数据库内容。

文档转载自:https://zhuanlan.zhihu.com/p/338971621

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=155

标签: abp
分享给朋友:

“第60篇 abp结构介绍” 的相关文章

SpringMVC-08-拦截器

SpringMVC-08-拦截器

1、阻拦器概述 SpringMVC的处理器阻拦器 类似于Servlet开发中的过滤器 Filter ,用于对 Handler 进行预处理和后处理。开发者能够自己界说一些阻拦器来完结特定的功用。 过滤器与阻拦器的差异: 过滤器 servlet标准中的一部分,任何JavaWeb工程都能够运用 在url-...

Swift之struct二进制巨细剖析

Swift之struct二进制巨细剖析

作者:京东零售 邓立兵 跟着Swift的日渐老练和给开发进程带来的便利性及安全性,京喜App中的原生事务模块和根底模块运用Swift开发占比逐步增高。本次评论的是struct比照Class的一些优劣势,要点剖析对包体积带来的影响及躲避办法。 一、根底知识 1、类型比照 引证类型:将一个目标赋值...

php汇率,了解PHP货币及其兑换率

关于菲律宾比索(PHP)兑换人民币(CNY)的汇率信息,您可以参考以下几个网站:1. XE Currency Converter: 网站提供实时中间市场汇率、历史汇率以及数据和货币图表。您可以访问 查看详细汇率信息。2. Wise Currency Converter: Wise 提供...

php显示图片, 图片路径处理

php显示图片, 图片路径处理

在PHP中显示图片可以通过多种方式实现,下面我将介绍几种常见的方法:```html``` 2. 使用PHP读取图片并输出如果你想在PHP脚本中动态生成图片或者从数据库中读取图片并显示,你可以使用PHP的文件处理函数来读取图片文件的内容,然后输出它。这里有一个简单的例子:```php// 检查文件是否...

on-the-go,现代生活的节奏与便捷生活方式

“Onthego”是一个常用的英语短语,其含义和用法如下:1. 基本含义: 忙碌和活跃:用来描述一个人总是处于忙碌或活跃的状态,没有空闲时间。 中文翻译:忙个不停的、特别忙的、总是在生产中或处于生产过程中。2. 用法: 在日常交流中,onthego常用来形容那些总是忙碌、时间紧迫的...

b rust,性能与安全的完美结合

B树是一种自平衡的树数据结构,它维持数据有序,并且允许搜索、顺序访问、插入和删除操作都在对数时间内完成。Rust是一种系统编程语言,以其内存安全性和高性能著称。在Rust中实现B树是一个很好的练习,可以帮助你理解数据结构和Rust语言的特性。以下是一个简单的B树实现的示例代码:```rustuse...