首页 > 编程知识 正文

abp框架怎么样,abp架构

时间:2023-05-04 06:09:06 阅读:267133 作者:1502

ABP:基于DDD的现代ASP.NET开发框架

1:ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

2:一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。

3:基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。

4:ABP的官方网站:http://www.aspnetboilerplate.com

5:ABP在Github上的开源项目:https://github.com/aspnetboilerplate

6:ABP框架于2014年5月4日首次在Github开源

 

ASP.NET Boilerplate采用了以下技术:

服务器端:

•ASP.NET MVC 、Web API 2、ASP.NET Core

•DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)

•Castle windsor (依赖注入容器)

•Entity Framework 6、Entity Framework Core 、 Daper ……,数据迁移

•Log4Net、NLog(日志记录)

•AutoMapper(实现Dto类与实体类的双向自动转换)

•CacheManager、EventBus、Module、SettingManager、 BackgroundJob、NodifyService

•…

ABP框架已实现了以下特性:

•多语言/本地化支持

•多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数据时写相应代码)

•软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)

•统一的异常处理(应用层几乎不需要处理自己写异常处理代码)

•数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)

•日志记录(自动记录程序异常)

•模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)

•Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)

•Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)

•EventBus实现领域事件(Domain Events)

•DLL嵌入资源管理

•通过Application Services自动创建Web Api层(不需要写ApiController层了)

•自动创建Javascript 的代理层来更方便使用Web Api

•封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层等等

 

 

领域层:

•领域层是所有的业务规则实现的地方。

•实体代表了业务领域的数据和操作。在实践中,它们一般会映射到数据库的表中。

•仓储是跟集合很像的对象,使用仓储可以检索数据源(数据库)上的实体,并将实体持久化到数据源上。领域层只是定义了仓储,但是并没有实现它们,它们是在基础设施层实现的。

•领域事件定义了领域特定的事件,也包括触发和处理这些事件。领域服务借助实体运行,并实现了不属于单个实体的业务规则。

•工作单元是一种管理实体的设计模式,这些实体受业务逻辑影响,并将状态持久化到数据存储中。

•领域层应该尽可能地独立于第三方的库。

应用层:

1.应用层包含了展现层使用的应用服务。应用服务方法接收一个DTO(数据传输对象)作为输入参数,使用这个输入对象执行一些特定的领域层操作,然后,如果需要的话,可能返回另一个DTO。

2.一般而言,应用服务方法不接收或者返回一个实体对象,这样做的好处就是可以允许展现层可以从领域层中将实体抽象出来,而不受实体的约束。

3.一个应用服务方法一般被看作是一个工作单元。

4.用户输入验证也是在这一层实现的。ABP提供了一个基础设施,因此可以很容易地实现验证。

5.建议使用一个将实体映射为DTO的工具,比如AutoMapper,TinyMapper等。

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。