第60篇 abp框架先容

打印 上一主题 下一主题

主题 743|帖子 743|积分 2229

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框架分层架构图

项目步伐分层架构图(领域驱动设计)

不但可以实用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框架应用就是这个基础上扩展自己的业务项目。这个部门,我们可以根据官网上举行一定的选项配置,然后下载利用。
基础布局组成部门:

扩展应用模板样式如下,需到官网下载

下载.net core 项目后,其中后端部门的项目视图如下所示

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

  • 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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表