领域驱动开发的特点:
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

abp知识的更多相关文章

  1. ABP VNext框架基础知识介绍(1)--框架基础类继承关系

    在我较早的时候,就开始研究和介绍ABP框架,ABP框架相对一些其他的框架,它整合了很多.net core的新技术和相关应用场景,虽然最早开始ABP框架是基于.net framework,后来也全部转向 ...

  2. ABP VNext框架基础知识介绍(2)--微服务的网关

    ABP VNext框架如果不考虑在微服务上的应用,也就是开发单体应用解决方案,虽然也是模块化开发,但其集成使用的难度会降低一个层级,不过ABP VNext和ABP框架一样,基础内容都会设计很多内容,如 ...

  3. 进军ABP第一天:ABP理论知识

    1.2.3 领域层领域层就是业务层,是一个项目的核心,所有业务规则都应该在领域层实现. ( 实体(Entity ) 实体代表业务领域的数据和操作,在实践中,通过用来映射成数据库表. ( 仓储(Repo ...

  4. ABP领域层知识回顾之---工作单元

    1. 前言   在上一篇博文中(http://www.cnblogs.com/xiyin/p/6842958.html) 我们讲到了ABP领域层的仓储.这边博文我们来讲 工作单元.个人觉得比较重要.文 ...

  5. ABP领域层知识回顾之---仓储

    1. 前言  在上一篇博文中 http://www.cnblogs.com/xiyin/p/6810350.html 我们讲到了ABP领域层的实体,这篇博文继续讲ABP的领域层,这篇博文的主题是ABP ...

  6. ABP领域层知识回顾之---实体

    标题:重温ABP领域层 1. 前言  最近一段时间一直在看<ABP的开发指南>(基于DDD的经典分层架构思想).因为之前一段时间刚看完<领域驱动设计:软件核心复杂性应对之道>, ...

  7. Abp小知识-如何全局设置DontWrapResult属性

    demo地址 GitHub相关demo地址:https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/ABP.Demo/WebAp ...

  8. ABP 00 常用知识

    1.更改本地预览的端口: 文件路径:\src\ContractMS.Web.Mvc\Properties\launchSettings.json 改这里:"applicationUrl&qu ...

  9. 初识ABP vNext(1):开篇计划&基础知识

    目录 前言 开始 审计(Audit) 本地化(Localization) 事件总线(Event Bus) 多租户(multi-tenancy technology) DDD分层 实体(Entity) ...

随机推荐

  1. GO文件读写03---使用缓冲读写实现视频文件的拷贝

    package main import ( "bufio" "fmt" "io" "os" ) /* ·使用缓冲读写实现 ...

  2. 执行Selenium后在temp目录下产生临时文件scoped_dir chrome_BITS

    环境:Windows selenium 3.141.0 Python 3.8.10 Chrome 90.0.4430.212 ChromeDriver 90.0.4430.24 最近发现执行完Sele ...

  3. 设计模式Immutability

    1.什么是Immutability Immutability,不变性, 叫做不变性设计模式,简单来说就是对象一旦创建,状态就不再发生变化. 变量一旦被赋值,就不允许修改了(没有写操作):没有修改操作, ...

  4. 换硬盘,装win10系统小记

    国庆在家给女朋友的电脑换了1T的固态,重装了系统,特此记录一下,方便后续有需要时查看. win10 激活问题 由于以前的系统就是正版 win10,即使重新装机也会自动激活,不需要做什么额外的步骤. 微 ...

  5. 构建编译TVM方法

    构建编译TVM方法 本文提供如何在各种系统上构建和安装TVM包的说明.它包括两个步骤: 1.     首先从C代码构建共享库( libtvm.so for linux, libtvm.dylib fo ...

  6. Mobileye高级驾驶辅助系统(ADAS)

    Mobileye高级驾驶辅助系统(ADAS) Mobileye is the global leader in the development of vision technology for Adv ...

  7. KITTI数据集上MaskRCNN检测效果示例

    KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...

  8. Redis6.x学习笔记(五)哨兵

    前言 最近学习Redis6.x,特做笔记以备忘,与大家共学.课程是从私塾在线下载的,他们把架构师课程都放出来了,大家可以去下载学习,不要钱的,地址是http://t.hk.uy/eK7,课程很不错,值 ...

  9. Minecraft类游戏地形生成机制

    目录 前言 生成地形高度 生成生物群落 模拟雨水侵蚀.生成河流(未完) 生成洞穴.裂谷 生成植被 放置树木(Bezier曲线) 生成建筑 生成发展域(元胞自动机模型) 放置建筑(DFS) 连接道路(A ...

  10. Nginx 配置文件介绍

    目录 1.1 常用命令 1.2 Nginx的配置文件结构 1.3 Nginx的全局配置 1.4 HTTP服务器配置 1.5 HttpGzip配置 1.6 负载均衡配置 1.7 server虚拟主机配置 ...