abp知识】的更多相关文章

领域驱动开发的特点:1.分层更多,前期代码量大,后期维护方便2.业务进行了专业的领域划分,业务逻辑更加清晰,便于业务扩展.3.代码工程高内聚,更加精简.4.主要是解决复杂业务逻辑编写问题 为什么要使用DTO(数据传输对象)?1.领域对象更注重领域,而DTO更注重数据,面向界面UI.通过DTO我们实现了表现层与Model之间的解耦,不会直接将领域对象的行为暴露给表现层.2.DTO可以有效的减少请求数量,减少客户端请求而降低服务器压力,提升效率.3.解决序列化和懒加载问题 ABP数据过滤器:软删除接…
在我较早的时候,就开始研究和介绍ABP框架,ABP框架相对一些其他的框架,它整合了很多.net core的新技术和相关应用场景,虽然最早开始ABP框架是基于.net framework,后来也全部转向拥抱.net core,而另一条线的ABP VNext则是定位从.net core开始的,基础类库以Volo.Abp开始.ABP框架和ABP VNext框架两者在基类和分层上,都很多几乎是一样的,不过ABP VNext框架是后来者,规避了很多前辈ABP框架的一些缺点,最明显的就是更加模块化(弊端就是…
ABP VNext框架如果不考虑在微服务上的应用,也就是开发单体应用解决方案,虽然也是模块化开发,但其集成使用的难度会降低一个层级,不过ABP VNext和ABP框架一样,基础内容都会设计很多内容,如数据库都支持Oracle.SQLServer.MySql.PostgreSQL.SQLite,都有利用Redis作为分布式缓存,使用RabbitMQ作为事件总线的消息处理方式,使用MongoDB的NoSQL类型数据库作为特殊数据的存储服务,使用Quartz/HangFire作为定时任务的处理等.如果…
1.2.3 领域层领域层就是业务层,是一个项目的核心,所有业务规则都应该在领域层实现. ( 实体(Entity ) 实体代表业务领域的数据和操作,在实践中,通过用来映射成数据库表. ( 仓储(Repository ) 仓储用来操作数据库进行数据存取.仓储接口在领域层定义,而仓储的实现类应该写在基础设施层. ( 领域服务(Domain service )当处理的业务规则跨越两个(及以上)实体时,应该写在领域服务方法里面.个人理解就是需要联表/同时多表操作的时候就在领域服务写 领域事件(Domain…
1. 前言   在上一篇博文中(http://www.cnblogs.com/xiyin/p/6842958.html) 我们讲到了ABP领域层的仓储.这边博文我们来讲 工作单元.个人觉得比较重要.文章的大致结构分为六部分,如下图所示: 2. 工作单元 2.1 通用连接和事务管理方法  .NET 使用连接池(connection pooling).因此,创建一个连接实际上是从连接池中取得一个连接,因为创建新连接会有成本.如果没有任何连接存在于连接池中, 一个新的连接对象会被创建并且添加到连接池中…
1. 前言  在上一篇博文中 http://www.cnblogs.com/xiyin/p/6810350.html 我们讲到了ABP领域层的实体,这篇博文继续讲ABP的领域层,这篇博文的主题是ABP领域层-仓储.我们在上篇博文中介绍的ABP领域层的大致结构,在这篇文章就不一一赘述了.详情可以查看上篇博文.接下来直接进入主题.仓储的定义是这样的: 在领域层和数据映射层的中介,使用类似集合的接口来存取领域对象----Martin Fowler. 仓储被用于领域对象在数据库上的操作(实体Entity…
标题:重温ABP领域层 1. 前言  最近一段时间一直在看<ABP的开发指南>(基于DDD的经典分层架构思想).因为之前一段时间刚看完<领域驱动设计:软件核心复杂性应对之道>,概念比较多,看着有点空.于是拿起了这本书.应该说是不是书, 只是一个PDF版的开发指南.于是乎,就开始了.好了,废话不多说,首先是ABP领域层的结构介绍,如下图所示: 从图中可以看到,ABP的领域层分为 实体,仓储,工作单元,数据过滤器,以及领域事件五个部分.这五个部分的功能作用,如果看过了解过DDD的应该不…
demo地址 GitHub相关demo地址:https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/ABP.Demo/WebApplication1 对demo说明一下,非abp官网模板,使用Visual Studio 2019创建的asp.net core 2.2 webapi项目,引入Abp.AspNetCore包,简单改造一下. 适配Abp 简单列举改造步骤: 初始化项目 通过nuget引入Abp.AspNetCore…
1.更改本地预览的端口: 文件路径:\src\ContractMS.Web.Mvc\Properties\launchSettings.json 改这里:"applicationUrl": "http://localhost:62115/", 2.修改语言: 文件路径:\src\ContractMS.Core\Localization\SourceFiles\ContractMS-zh-Hans.xml 3.让abp不包裹返回的数据 添加标签属性:[Abp.Web.…
目录 前言 开始 审计(Audit) 本地化(Localization) 事件总线(Event Bus) 多租户(multi-tenancy technology) DDD分层 实体(Entity) 值对象(Value Object) 聚合根(Aggregate Root) 仓储(Repository) 应用服务(Application Services) 数据传输对象(DTO) 工作单元(Unit Of Work) 最后 前言 ABP vNext(以下简称ABP)的前身是asp.net boi…