abp知识

领域驱动开发的特点:
1.分层更多,前期代码量大,后期维护方便
2.业务进行了专业的领域划分,业务逻辑更加清晰,便于业务扩展。
3.代码工程高内聚,更加精简。
4.主要是解决复杂业务逻辑编写问题

为什么要使用DTO(数据传输对象)?
1.领域对象更注重领域,而DTO更注重数据,面向界面UI。通过DTO我们实现了表现层与Model之间的解耦,不会直接将领域对象的行为暴露给表现层。
2.DTO可以有效的减少请求数量,减少客户端请求而降低服务器压力,提升效率。
3.解决序列化和懒加载问题

ABP数据过滤器:
软删除接口(ISoftDelete) public virtual bool IsDeleted { get; set; }

多租接口(IMustHaveTenant) public int TenantId { get; set; }

多租接口(IMayHaveTenant) public int? TenantId { get; set; }

ABP实体
Entity<T>

创建时间、修改时间、创建人、修改人
AuditedEntity
IAudited
IHasCreationTime        -  DateTime CreationTime { get; set; }
ICreationAudited          -  long? CreatorUserId { get; set; }
IHasModificationTime   -  DateTime? LastModificationTime { get; set; }
IModificationAudited      - long? LastModifierUserId { get; set; }

软删除
IDeletionAudited long?     - long DeleterUserId { get; set; }   DateTime? DeletionTime { get; set; }     bool IsDeleted { get; set; }

ISoftDelete                       - bool IsDeleted { get; set; }

IFullAudited interface IFullAudited : IAudited, IDeletionAudited

原文地址:https://www.cnblogs.com/kerwincui/p/10648023.html