随笔分类 - 架构
摘要:今年的中国系统架构师大会(SACC)在我所在的城市广州举办,很荣幸受邀参加。这次能接触到国内最优秀的架构师,学习他们的架构思想和行业经验。对我而言非常有意义。 大会分为上下午共4场,我参加了上午的多云多活架构设计专场和下午的AIGC专场。 本篇文章就多云多活架构设计专场,我选取几位老师的观点进行分享
阅读全文
摘要:@目录原理创建分布式事件总线实现自动订阅和事件转发使用启动Redis服务配置传递Abp默认事件传递自定义事件项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能,如注册事件、取消注册事件、触发事件等。 Abp.Events.Bus.EventBus是
阅读全文
摘要:[toc] 使用数据库的创建时间作为查询依据,在Abp框架中,实体类实现ICreationAuditedObject接口,或继承CreationAuditedEntity类,使用仓储创建记录时将自动生成CreationTime。 ## 实现 定义按创建日期范围查询(IDateSpanOriented
阅读全文
摘要:@[toc] 用户关系(Relation)是描述业务系统中人员与人员之间的关系,如:签约、关注,或者朋友关系。 之前我们在扩展身份管理模块的时候,已经实现了用户关系管理,可以查看本系列博文之前的内容。[怎样优雅地增删查改(二):扩展身份管理模块](https://www.cnblogs.com/je
阅读全文
摘要:@[toc] ## 实现 定义按用户查询(IUserOrientedFilter)接口 ``` public interface IUserOrientedFilter { public string EntityUserIdIdiom { get; } Guid? UserId { get; se
阅读全文
摘要:@[toc] ## 实现 定义按任意字段关键字查询过滤器(IKeywordOrientedFilter)接口,查询实体列表Dto若实现该接口,将筛选指定的目标字段(TargetFields)包含指定的关键字(Keyword)的实体。 ``` public interface IKeywordOrie
阅读全文
摘要:@[toc] 之前我们实现了Employee,Alarm管理模块以及通用查询应用层。 Employee的集合查询业务,是通过重写CreateFilteredQueryAsync方法,来实现按组织架构查询的过滤条件。 我们将这段逻辑代码提取到通用查询应用层中,便可实现在任何业务的按组织架构查询。 ##
阅读全文
摘要:@[toc] 上一章我们实现了Employee管理模块,Employee的增删改查是通过其应用服务类,继承自Abp.Application.Services.CrudAppService实现的。 我们将封装通用的应用层,接口以及控制器基类。 ## 创建通用查询抽象层 创建接口ICurdAppServ
阅读全文
摘要:@[toc] ## 创建业务用户 区别于身份管理模块(Identity模块)的鉴权用户IdentityUser,业务用户(BusinessUser)是围绕业务系统中“用户”这一定义的领域模型。如:在一个医院系统中,业务用户可以是医生、护士、患者;在一个OA系统中,业务用户可以是员工、管理员、客户等。
阅读全文
摘要:@[toc] 身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。 身份管理模块的领域层依赖Volo.Abp.Identity.Domain ![在这里插入图片描述](https://img2023.cnblogs.com/blog/644861/20230
阅读全文
摘要:@[toc] 软件系统中数据库或者持久层的基本操作功能可以用Curd描述,Curd即 增加(Create)、更新(Update)、读取查询(Retrieve)和删除(Delete), 这4个单词的首字母。 在常见的业务系统中,对数据的大部分操作都是Curd,在实践的过程中对数据的筛选、排序、分页、关
阅读全文
摘要:@[toc] 假设有一个按照[官方sample](https://docs.abp.io/zh-Hans/abp/latest/Samples/Microservice-Demo)搭建的微服务项目,并安装好了abp-cli。 需要创建一个名为GDMK.CAH.Common的模块,并在模块中创建标签管
阅读全文