核心业务逻辑在工单实体类中,它定义了相应的业务方法,内部会改变工单实体自身的一些状态,必要时触发相应事件,以此来确保工单始终能处于正确的状态,比如:某个已完成的工单无关联的员工或没有开始和完成时间;再比如某个已拒绝的工单,没有拒绝说明。如果实体的属性都是public get; set; 很容易出现这种问题,因为协作开发时别人很可能胡乱调用你的实体,随意设置值。
领域服务有少量代码,也触发相应的领域事件。
应用服务来接收前端调用,协调领域实体和服务来实现业务逻辑。
关于DDD下篇详细说明设计思路时再细说
集成可扩展性中提到工单是抽象化的,但默认提供了一个”普通工单“的实现,因此安装并配置模块后此功能立即可用。另外也可用提供几个子类实现一个自定义类型的工单。
线上demo::9000/ 账号:admin 密码:123qwe
先在abp官方下载一个干净的abp项目,写此文章时用的abp6.3 .net 5。或者你可用在你目前的项目引入并测试。按以下步骤进行配置。
安装nuget包相关nuget包都是以:BXJG.WorkOrder为前缀的。
先确保:
在解决方案上右键 > 管理解决方案的包 > 更新 -> Castle.Windsor.MsDependencyInjection 升级到3.4.0
在解决方案上右键 > 管理解决方案的包 > 更新 -> Microsoft.EntityFrameworkCore 更新到5.0.4
XXX.Core层中Install-Package BXJG.WorkOrder.EFCore -Version 1.0.0-rc