ABP 源码与架构分析视频教程

  • 共 48 个视频教程

第48期-应用服务

  • 2020/12/30 22:40 | 46分钟
  • VIP

应用服务用于实现应用程序的用户用例,用于将领域服务的逻辑公开给表现层,应用服务和数据传输对象,自动生成基于 CRUD 增删改查的应用服务,重写通用应用服务基类方法,定制查询方式,基于复合主键的通用应用服务,过滤器,分页,排序,在应用层处理数据流,验证参数,操作授权,依赖注入生命周期。

19581次播放

第47期-将 ABP 框架升级 .NET 5 版本

  • 2020/12/12 10:15 | 32分钟
  • VIP

关于 ABP 版本概述,将 ABP 升级 .NET 5 版本,升级 ABP 命令行工具,最新 ABP 新版中的新增内容与改进,改进 Blazor 稳定性,使用微软内置的 JSON 序列化库,提供 WPF 项目支持,改进 URL 格式规范,未来版本路线图,每晚构建,使用预览版和稳定版。

9092次播放

第46期-规约模式

  • 2020/11/30 21:24 | 31分钟
  • VIP

规约模式用于定义可重用、可组合、有意义和可测试的过滤器,简单地说,规约模式就是对查询条件表达式用类的形式进行封装,关于 ABP 框架中的规约模块,定义规约,检查对象是否满足某个规约,使用规约查询数据,使用运算符组合规约,使用继承方式组合规约,理解规约的使用场景,阅读分析 ABP 源码,理解规约模块的设计与实现原理。

19308次播放

第45期-领域服务与应用服务

  • 2020/11/29 11:02 | 28分钟
  • VIP

在领域驱动设计中,核心业务逻辑一般在实体和聚合根中实现,但在某些情况下我们需要创建领域服务实现核心业务逻辑,理解领域服务和应用服务的区别,在 ABP 框架中使用领域服务实现业务规则,使用应用服务实现用户交互用例,在应用服务中调用或组合领域服务完成业务处理。

10136次播放

第44期-理解并实现值对象

  • 2020/11/26 23:08 | 32分钟
  • VIP

标识对于实体是必不可少的,系统中有许多对象和数据项不需要标识和标识跟踪,领域模型中的值对象具有无标识和不可变两大特征,在 ABP 框架中实现值对象,在数据库中持久保存值对象,在 EF Core 中以从属实体类型形式来持久保存值对象,阅读并分析 ABP 源码,学习关于值对象的设计与实现原理。

21238次播放

第43期-理解实体与聚合根

  • 2020/11/25 23:05 | 51分钟
  • VIP

理解领域模型驱动设计中的概念,实体,聚合根,值对象,在 ABP 中定义带主键的实体,实体类与实体接口,具有组合键的实体,定义聚合根,聚合根类与聚合根接口,带有组合键的聚合根,实体类与聚合根类的继承层次,实现审计特征相关接口,继承审计通用类可简化审计接口实现,聚合根支持扩展属性,关于实体与聚合根的最佳实践。

21280次播放

第42期-演示数据初始化机制

  • 2020/11/24 0:20 | 29分钟
  • VIP

使用数据库的应用程序都需要一些初始数据,在系统创建时就需要内置超级管理员用户,在开发测试阶段需要模拟一些演示数据,这些数据需要预先存储在数据库中,尽管 EF Core 提供了一种生产数据的方法,但它的能力非常有限,在 ABP 框架种提供了整套数据初始化机制,支持模块化,数据库独立,生产与开发环境分离,支持依赖注入,分析 ABP 源码,理解演示数据初始化机制的设计与实现原理。

28次播放

第41期-集成内存数据库访问

  • 2020/11/20 21:58 | 30分钟
  • VIP

使用内存数据库模块实现仓储模式,内存数据库对开发和测试来说非常有用,在 ABP 框架中使用内置的内存数据库,创建上下文并配置默认仓储,基于通用抽象仓储扩展自定义仓储,使用自定义仓储替换默认通用仓储,自定义并替换内存数据库仓储基类,阅读 ABP 框架源码,学习内存数据库实现原理与领域层仓储模式。

19518次播放

第40期-集成MongoDB数据访问

  • 2020/11/19 23:50 | 60分钟
  • VIP

学习 NoSQL 与 MongoDB 数据库,在 Docker 容器中运行 MongoDB 数据库, 使用程序访问 MongoDB 数据库,在 ABP 框架中使用 MongoDB 模块实现仓储模式,创建上下文并配置实体映射,关于 MongoDB 连接字符串,基于通用仓储扩展自定义仓储,替换默认仓储实现,工作单元与事务支持,实现并替换默认仓储基类,抽象并提取上下文接口,替换现有的上下文实现。

21426次播放

第39期-集成Dapper数据访问

  • 2020/11/18 23:26 | 58分钟
  • VIP

关于轻量级 ORM 开源库 Dapper 介绍,在 ABP 使用 Dapper 实现仓储模式,基于现有 DbContext 使用 Dapper 模块 和 SQL 语句实现数据库操作,使用 Dapper 扩展库简化 SQL 语句,不依赖 DbContext 实现 Dapper 数据库访问仓储 ,在事务上使用 Dapper 实现操作,阅读 ABP 源码,分析 Dapper 模块实现原理。

21447次播放

第38期-使用MySQL和其它数据库

  • 2020/11/10 22:18 | 37分钟
  • VIP

ABP 框架为一些常见的 DBMS 提供简化的配置集成包,在 Docker 容器中运行数据库服务,安装数据库提供程序集成包,设置模块依赖与数据库提供程序, 配置 SQL Server、MySQL、PostgreSQL、Oracle 和 SQLite 数据库,编写不同类型数据库的连接字符串,多个 DbContext 上下文使用不同类型的数据库,上下文数据库迁移。

20672次播放

第37期-仓储模式与扩展

  • 2020/11/6 21:25 | 50分钟
  • VIP

基于通用仓储实现自定义仓储类,使用自定义仓储实现替换默认通用仓储,配置隐式扩展属性,自定义 EF Core 仓储基类,抽象 DbContext 上下文接口,替换默认仓储上下文实现,在 EF Core 仓储上执行异步操作,关于 MongoDB 仓储实现的异步操作,使用 IAsyncQueryableExecuter 制行异步操作。

19832次播放

第36期-集成EFCore数据访问

  • 2020/11/2 22:40 | 61分钟
  • VIP

关于 ABP 数据访问抽象与 EFCore 数据访问实现,安装相关模块包并添加模块依赖,创建实体和 DbContext 上下文,指定连接字符串名称,实体数据库表映射配置,分离迁移上下文,实现设计时上下文迁移工厂,将上下文注册到容器,迁移多个上下文数据库,配置通用仓储,使用仓储生成演示数据,在服务中使用泛型仓储实现 CRUD 增删改查相关操作。

20872次播放

第35期-分库分表与连接字符串

  • 2020/10/19 23:05 | 62分钟
  • VIP

支持多数据库访问提供程序,灵活的多租户模块化微服务,通过示例学习可扩展的数据库分库分表部署方案,不同模块使用独立数据库,不同的租户使用独立数据库,多个模块共享数据库,多个租户共享数据库,不同租户的不同模块分离数据库,使用特性标记连接字符串名称,配置各种连接字符串,分析 ABP 源码,学习基于多租户的连接字符串解析器。

22142次播放

第34期-多租户管理与用户界面

  • 2020/10/15 21:35 | 32分钟
  • VIP

使用租户管理扩模块在数据库中存储租户配置,租户数据表结构配置,租户数据库架构迁移,迁移租户演示数据,配置租户管理权限,使用可视化 UI 界面管理租户,租户连接字符串管理,主机级别的功能特征管理,基于租户的功能特征管理,分析 APB 租户管理模块项目源码,学习租户管理系统实现原理。

20275次播放

第33期-多租户存储与源码解析

  • 2020/10/15 21:26 | 34分钟
  • VIP

租户存储器用于从数据源获取租户配置,使用默认租户存储器选项配置租户信息,使用配置文件配置租户信息,分析 ABP 源代码,理解多租户机制架构设计,使用租户中间件拦截请求,使用多个租户解析器从请求中解析租户,当前租户设置与获取接口,租户数据过滤器的内部实现原理。

20278次播放

第32期-多租户模块实现

  • 2020/10/14 21:36 | 62分钟
  • VIP

多重租赁技术是一种软件架构技术,用于创建基于云构建的 SaaS 应用程序,关于 ABP 中的多租户模块包,多租户相关设置,数据库架构,多租户数据隔离方案,多租户共享数据库,多租户独享数据库,多租户混合数据库,理解用户的主机级别与租户级别,获取当前访客的租户信息,切换当前租户,禁用多租户数据过滤器,内置的多个租户解析器,基于二级子域名的租户解析器,自定义租户解析器。

20326次播放

第31期-功能管理扩展与用户界面

  • 2020/10/13 21:01 | 51分钟
  • VIP

在数据库中存储功能特征值,安装功能特征管理相关模块包,使用 EF Core 存储功能特征值,配置数据表结构,迁移数据库架构,设置功能特征管理权限,使用 UI 界面管理功能特征值,基于 API 接口管理功能特征值,分析功能特征管理模块源码的实现,深入理解工作机制和实现原理。

20337次播放

第30期-功能特征模块

  • 2020/10/12 23:10 | 62分钟
  • VIP

功能特征管理可在运行时启用禁用更改应用程序的功能行为,安装功能特征模块包,定义功能特征相关配置,子功能特征,更改已有模块的定义值,使用 [RequiresFeature] 和 IFeatureChecker 接口检查功能特征,在客户端检查功能特征,租户值提供者,版本值提供者,默认值提供者,自定义值提供者,使用自定义值存储器,分析 ABP 源码,理解功能特征模块实现原理。

22302次播放

第29期-设置管理与实现原理

  • 2020/9/17 1:08 | 41分钟
  • VIP

使用 EF Core 和 MongoDB 在数据库中存储设置信息,安装设置管理相关模块,使用 EF Core 存储设置数据,配置表结构,迁移数据库表,理解设置视图组件提供者,设置页面导航菜单分组与权限控制,分析 ABP 源码,深入理解设置系统的工作机制和实现原理。

1032次播放

第28期-系统设置配置

  • 2020/9/17 0:51 | 44分钟
  • VIP

理解 ABP 设置模块与配置系统,使用提供者模式定义系统设置,在提供者中更改现有的设置定义,使用设置提供者获取设置值,在客户端读取设置值,实现设置值提供程序,默认值提供程序,配置文件提供程序,全局值提供程序,租户值提供程序,用户值提供程序,设置存储接口,配置加密解密服务,解析设置模块实现原理。

43次播放

第27期-审计日志高级配置与实现原理

  • 2020/9/11 0:33 | 47分钟
  • VIP

使用贡献者模式为审计日志动态追加内容,获取当前审计日志范围,手动创建审计日志范围,使用审计日志存储扩展模块,将审计日志保存到数据库表中,审计日志数据表的配置与迁移,阅读并理解 ABP 源码,学习基于拦截器的审计日志实现原理与处理机制,学习审计日志存储扩展模块源码,理解使用 EF Core 和 MongoDB 在数据库中存储审计日志的实现原理。

46次播放

第26期-审计日志基本配置

  • 2020/9/11 0:12 | 45分钟
  • VIP

审计日志与系统日志的区别,基于 ABP 快速构建增删改查演示服务,安装审计日志模块包,在管道中插入审计中间件,审计日志配置选项,保存实体属性变更日志,启用和禁用服务操作审计日志,启用和禁用实体变更审计日志,审计日志的保存机制,理解审计日志对象结构图。

44次播放

第25期-日志记录与扩展

  • 2020/9/5 17:15 | 49分钟
  • VIP

ABP 框架没有实现任何日志基础设施,沿用 ASP.NET Core 日志系统,推荐使用 Serilog 记录系统日志,日志记录相关配置,在控制台和文件中记录日志,基于 HTTP 请求的日志记录,日志输出模板设置,使用 ABP 中提供的 Serilog 扩展模块,将租户信息、用户信息、客户端信息和请求跟踪编号动态追加到日志条目中。

17116次播放

第24期-集成UI界面与权限管理

  • 2020/9/3 23:22 | 51分钟
  • VIP

集成 ABP 用户界面模块,客户端包管理,前端自动化构建,编写启动页面,前端库的捆绑与压缩,使用 TagHelper 标签,在启动页面上集成权限管理系统的界面,使用界面分配权限和撤回权限,权限管理系统的本地化与多语言实现,分析 ABP 源码,学习权限管理系统界面的设计原理。

23189次播放

第23期-权限管理系统

  • 2020/9/2 22:25 | 88分钟
  • VIP

权限名称常量化与静态嵌套类,权限提供者,权限主键,权限策略名称,安装权限管理模块,权限管理提供者策略配置,配置 DbContext 上下文和数据库迁移程序,生成权限演示数据,使用代码管理权限,使用 API 接口远程管理权限,实现权限管理提供者,分析 ABP 权限管理系统架构源码,理解权限管理系统内部处理机制与最佳实践。

22241次播放

第22期-分析ABP授权机制原理

  • 2020/8/28 0:36 | 47分钟
  • VIP

使用授权服务检查权限,在前端 JavaScript 中判断权限,在开发和测试阶段绕过授权服务,模拟当前用户标识和声明信息,分析 ABP 源码理解授权模块工作机制,授权拦截器,授权方法调用,授权服务,授权策略提供者,授权处理器,授权计算器,权限定义管理者,权限检查器,权限值提供者管理器。

46次播放

第21期-基于权限策略的授权机制

  • 2020/8/28 0:05 | 52分钟
  • VIP

认证与授权机制的区别,基于数据注解的权限策略,基于用户角色和客户端的多维度授权方式,在权限定义提供者中定义权限,权限的层级结构,实现权限名称本地化,权限与多租户,禁用权限,扩展权限值提供者,自定义权限存储机制,实战演练并理解身份认证与权限系统的处理流程。

51次播放

第20期-分布式缓存模块

  • 2020/8/24 20:48 | 64分钟
  • VIP

安装 ABP 分布式缓存模块包,使用微软 .NET Core 内置分布式缓存接口,使用 ABP 中的泛型分布式缓存接口,缓存项序列化,缓存键前缀约定,基于多租户的缓存项隔离与共享,全局缓存配置选项,使用 Redis 分布式缓存服务,安装 Redis 扩展模块,配置连接字符串,访问分布式缓存,分析 ABP 源码中关于分布式缓存的机制的实现方式。

20383次播放

第19期-使用FluentValidation验证

  • 2020/8/20 21:51 | 46分钟
  • VIP

数据注解验证的优缺点,在 ABP 中使用 FluentValidation 模块实现链式验证器,安装模块包,创建对象验证器,编写链式验证规则,使用 ABP 内置验证过滤器对模型进行验证,学习 ABP 框架源码,理解验证拦截器,拦截验证方法,对象验证器,对象验证提供者,数据注解与链式验证提供者内部实现原理。

21465次播放

第18期-验证机制

  • 2020/8/19 0:10 | 63分钟
  • VIP

关于 ABP 的验证模型机制,实现 IValidationEnabled 接口对服务方法进行自动验证,验证错误信息的本地化,基于数据注解验证 DTO 数据传输对象,实现 IValidatableObject 接口,使用 IObjectValidator 验证对象,实现自定义对象验证提供者,动态注解特性扩展,通过分析 ABP 源码理解验证机制的实现原理。

63次播放

第17期-异常处理机制

  • 2020/8/14 11:45 | 57分钟
  • VIP

理解 ABP 异常的处理模型,自动异常封装处理机制,错误消息格式,错误代码,错误详细信息,验证错误,异常级别与日志记录,自定义异常日志记录逻辑,业务异常封装,异常消息本地化与多语言,封送用户友好的错误提示消息,自定义异常与 HTTP 状态码映射关系,分析 ABP 源码,理解异常处理过滤器,内置轻量级异常发布订阅机制。

11343次播放

第16期-本地化与多语言

  • 2020/8/12 22:29 | 58分钟
  • VIP

多语言网站可以覆盖更广泛的受众,使用 ABP 提供的本地化模块,借助微软中间件可将网站本地化为不同国家的语言和文化,安装本地化模块包,创建多语言资源包,简化资源名称,继承其它资源,扩展现有资源,设置默认资源,在类中使用本地化资源文件,格式化参数,在 Razor 视图中使用本地化资源文件,在前端使用本地化资源文件。

22674次播放

第15期-虚拟文件系统

  • 2020/8/10 23:01 | 52分钟
  • VIP

理解 ABP 中的虚拟文件系统,安装虚拟文件模块库,将指定的文件嵌入到程序集,使用 glob 通配符嵌入文件,使用反汇编工具查看嵌入在程序集中的文件,将嵌入在程序集中的文件注册到虚拟文件系统,使用 ABP 虚拟文件系统,将虚拟文件系统与 ASP.NET Core 集成,使用 HTTP 协议访问虚拟文件系统中的静态资源,学习 ABP 源码,理解虚拟文件系统模块的实现原理。

23742次播放

第14期-关于Autofac与AOP拦截器

  • 2020/8/8 10:39 | 28分钟
  • VIP

Autofac 是 .NET Core 平台上最常用的依赖注入框架,相比 .NET Core 标准的依赖注入库,它提供更加高级的特性,动态代理,属性注入,拦截器,基于配置文件的依赖项,安装 Autofac 模块,配置模块依赖,替换依赖注入容器,关于横切关注点与拦截器,动态 AOP 与静态 AOP 的区别与实现,实战演练编写自己的动态拦截器,学习 ABP 源码,理解验证拦截器,授权拦截器,工作单元拦截器,审计日志拦截器。

10348次播放

第13期-依赖注入相关配置

  • 2020/8/6 22:50 | 32分钟
  • VIP

关于 ABP 中的依赖注入系统,在不同的模块中向容器添加依赖项,约定大于配置的原则,依赖注入默认约定,依赖项的生命周期,禁用默认约定,手动注册相关服务,依赖注入接口约定,依赖注入 Attribute 特性约定,多种注入方式混合使用,构造函数注入,属性注入,使用解析服务注入,依赖注册通知,分析 ABP 源码,学习依赖注入约定的实现。

22780次播放

第12期-配置与选项

  • 2020/8/2 14:54 | 20分钟
  • VIP

ABP 框架中的配置系统与 ASP.NET Core 完全兼容,基于键值存储的配置系统,从配置文件中读取配置信息,关于选项配置模式,自定义配置选项,在容器中注入配置,从容器中解析配置,ABP 框架提供的预配置机制允许在容器初始化之前配置选项模式,在当前模块容器配置过程中解析其它模块提供的预配置选项。

14552次播放

第11期-扩展实体对象的属性

  • 2020/8/1 15:54 | 58分钟
  • VIP

扩展属性是用于存储实体额外数据但不用更改实体的一种扩展方式,创建或删除实体的扩展属性,设置实体的隐藏扩展属性,将多个实体类型映射到相同的数据库表并实现数据表共享,创建数据库同步共享表,追踪实体对象变更,在单体应用中订阅领域事件通知,基于分布式微服务的事件总线订阅,分析 ABP 模块源码,理解扩展属性的实现方式和事件总线机制。

15642次播放

第10期-自定义现有模块与包引用

  • 2020/7/30 23:35 | 53分钟
  • VIP

ABP 框架的设计旨在使用可复用的模块构建应用程序系统,复用模块提供包引用和源码包含两种方式,前者整洁干净,升级简单,只包含自己的代码,后者提供源码级别的灵活修改,可分离模块解决方案,使用 ABP 提供的自动化构建脚本编译项目,搭建私有的 NuGet 包仓库服务器,使用 ABP 提供的脚本打包项目,将完成的打包自动发布到私有仓库,在解决方案中安装来自私有仓库的包。

23995次播放

第09期-使用Angular实战增删改查

  • 2020/7/29 22:57 | 61分钟
  • 免费

创建 Angular 项目基架,定义领域实体,将实体添加到 DbContext 上下文,配置实体,数据库变更迁移,实现演示数据生成接口,多语言资源包,定义 DTO 数据传输对象,领域实体与 DTO自动映射配置 ,编写并实现应用程序服务接口,修改 Angular 请求地址,实现权限定义提供者接口,定义系统操作权限,基于角色的授权机制,使用 NPM 命令还原前端模块包,编译并运行 Angular 单页应用。

22984次播放

第08期-编写单元测试与集成测试

  • 2020/7/28 22:38 | 77分钟
  • 免费

理解 ABP 中的测试体系结构,使用 xUnit 框架驱动测试,使用 Shouldly 链式断言库,基于 Mock 的 NSubstitute 开源模拟库,实战演练,实现演示数据生成器,编写单元测试和集成测试,基于 Substitute 类模拟接口实现,基于 TestServer 在内存进程级别进行 UI 界面测试,使用 AngleSharp 开源库解析网页 DOM 结构。

23022次播放

第07期-使用ABP实战CRUD增删改查

  • 2020/7/23 22:59 | 65分钟
  • 免费

示例代码与依赖包还原,在 ABP 中使用 NPM 包管理器还原前端包,使用 Gulp 任务进行前端自动化构建,实战演练本地化与多国语言切换,定制菜单项,实现异步列表展示,排序与分页,创建功能,编辑功能,删除功能,前后端自动验证,实现品牌提供接口定制个性化站点内容。

23121次播放

第06期-使用ABP实战演练应用开发

  • 2020/7/22 22:41 | 57分钟
  • 免费

使用命令行创建基架,在领域层添加实体和聚合根,在领域共享层添加枚举,将实体添加到 DbContext 上下文,配置实体的属性字段映射,添加新的迁移脚本并同步数据库,创建 DTO 对象并配置映射关系,创建应用层服务接口与实现,运行 OpenApi 帮助文档,使用动态生成的客户端代理脚本请求 API 接口,使用 C# 客户端代理调用 API 接口。

23135次播放

第05期-使用CLI命令创建微服务架构

  • 2020/7/22 1:43 | 61分钟
  • 免费

细说 ABP 命令行工具,理解项目模板,指定 UI 框架,移动端开发支持,选择数据库提供程序,分离 Web 项目和 API 项目,单独发布 IdentityServer 服务,模块分层与单体部署,将模块部署到不同的主机管道,容器化 ABP 模块并实现微服务架构,构建运行 Angular 单页项目,构建运行 React Native 移动应用,使用官方向导工具创建分层架构。

1109次播放

第04期-使用CLI命令行创建分层架构

  • 2020/7/20 23:51 | 55分钟
  • 免费

安装并更新 ABP 提供的 CLI 命令行工具,关于 ABP 命令与参数,使用 DDD 分层架构模板创建项目,指定模板,指定 UI 框架,选择数据库提供程序,将 API 接口与 IdentityServer 服务分离部署,多个项目模块共享请求管道,细说 DDD 项目分层结构,单元测试与集成测试项目结构说明,使用迁移工具创建数据库,启动并运行基架项目。

24227次播放

第03期-使用MVC模块开发Web应用

  • 2020/7/18 16:38 | 53分钟
  • 免费

创建 ASP.NET Core 空项目,使用最少的依赖项构建请求管道,安装 ABP 框架提供的 MVC 模块包,用多个 ABP 模块构建不同的站点,在模块中配置依赖注入容器和请求中间件,在 Startup 启动类中配置 ABP 应用程序引擎,初始化 ABP 应用程序环境,使用 MVC 控制器处理请求,配置模块依赖关系,分析 ABP 源码,理解内部请求处理机制。

16900次播放

第02期-理解模块加载机制

  • 2020/7/17 23:33 | 54分钟
  • 免费

使用最少的依赖关系创建新项目并安装 ABP 核心包,创建首个 ABP 模块,初始化 ABP 应用程序引擎,加载启动模块,编写 HelloWorld 服务,使用依赖容器注入服务,基于约定的依赖注入方式,分析 ABP 源码,理解模块接口与基类层次,模块的声明周期,应用程序工厂与模块容器,模块管理器与加载器,程序集探测器与模块类型查询器。

24295次播放

第01期-什么是ABP框架

  • 2020/7/16 23:23 | 54分钟
  • 免费

关于 ASP.NET Boilerplate 与 ASP.NET Zero 的区别,全新的 ABP Framework 框架专注于 ASP.NET Core 平台应用程序开发,支持分布式微服务,提供 CLI 命令行,模块化,多租户,标签助手,认证与授权,横切关注点,捆绑与缩小,虚拟文件系统,多主题,后台任务,基于 DDD 设计,自动生成 API 接口,动态客户端代理,分布式事件总线,测试集成,审计日志,对象映射,电子邮件短信发送,多语言,面向方面的编程,约定式依赖注入。

24318次播放