搜索分类、视频或标签
适用于现代 Web 应用程序的强大基础结构,免费和开源,分层架构,模块化设计,多租户,领域驱动设计。
共 48 项内容
应用服务用于实现应用程序的用户用例,用于将领域服务的逻辑公开给表现层,应用服务和数据传输对象,自动生成基于 CRUD 增删改查的应用服务,重写通用应用服务基类方法,定制查询方式,基于复合主键的通用应用服务,过滤器,分页,排序,在应用层处理数据流,验证参数,操作授权,依赖注入生命周期。
关于 ABP 版本概述,将 ABP 升级 .NET 5 版本,升级 ABP 命令行工具,最新 ABP 新版中的新增内容与改进,改进 Blazor 稳定性,使用微软内置的 JSON 序列化库,提供 WPF 项目支持,改进 URL 格式规范,未来版本路线图,每晚构建,使用预览版和稳定版。
规约模式用于定义可重用、可组合、有意义和可测试的过滤器,简单地说,规约模式就是对查询条件表达式用类的形式进行封装,关于 ABP 框架中的规约模块,定义规约,检查对象是否满足某个规约,使用规约查询数据,使用运算符组合规约,使用继承方式组合规约,理解规约的使用场景,阅读分析 ABP 源码,理解规约模块的设计与实现原理。
在领域驱动设计中,核心业务逻辑一般在实体和聚合根中实现,但在某些情况下我们需要创建领域服务实现核心业务逻辑,理解领域服务和应用服务的区别,在 ABP 框架中使用领域服务实现业务规则,使用应用服务实现用户交互用例,在应用服务中调用或组合领域服务完成业务处理。
标识对于实体是必不可少的,系统中有许多对象和数据项不需要标识和标识跟踪,领域模型中的值对象具有无标识和不可变两大特征,在 ABP 框架中实现值对象,在数据库中持久保存值对象,在 EF Core 中以从属实体类型形式来持久保存值对象,阅读并分析 ABP 源码,学习关于值对象的设计与实现原理。
理解领域模型驱动设计中的概念,实体,聚合根,值对象,在 ABP 中定义带主键的实体,实体类与实体接口,具有组合键的实体,定义聚合根,聚合根类与聚合根接口,带有组合键的聚合根,实体类与聚合根类的继承层次,实现审计特征相关接口,继承审计通用类可简化审计接口实现,聚合根支持扩展属性,关于实体与聚合根的最佳实践。
使用数据库的应用程序都需要一些初始数据,在系统创建时就需要内置超级管理员用户,在开发测试阶段需要模拟一些演示数据,这些数据需要预先存储在数据库中,尽管 EF Core 提供了一种生产数据的方法,但它的能力非常有限,在 ABP 框架种提供了整套数据初始化机制,支持模块化,数据库独立,生产与开发环境分离,支持依赖注入,分析 ABP 源码,理解演示数据初始化机制的设计与实现原理。
使用内存数据库模块实现仓储模式,内存数据库对开发和测试来说非常有用,在 ABP 框架中使用内置的内存数据库,创建上下文并配置默认仓储,基于通用抽象仓储扩展自定义仓储,使用自定义仓储替换默认通用仓储,自定义并替换内存数据库仓储基类,阅读 ABP 框架源码,学习内存数据库实现原理与领域层仓储模式。
学习 NoSQL 与 MongoDB 数据库,在 Docker 容器中运行 MongoDB 数据库, 使用程序访问 MongoDB 数据库,在 ABP 框架中使用 MongoDB 模块实现仓储模式,创建上下文并配置实体映射,关于 MongoDB 连接字符串,基于通用仓储扩展自定义仓储,替换默认仓储实现,工作单元与事务支持,实现并替换默认仓储基类,抽象并提取上下文接口,替换现有的上下文实现。
关于轻量级 ORM 开源库 Dapper 介绍,在 ABP 使用 Dapper 实现仓储模式,基于现有 DbContext 使用 Dapper 模块 和 SQL 语句实现数据库操作,使用 Dapper 扩展库简化 SQL 语句,不依赖 DbContext 实现 Dapper 数据库访问仓储 ,在事务上使用 Dapper 实现操作,阅读 ABP 源码,分析 Dapper 模块实现原理。
ABP 框架为一些常见的 DBMS 提供简化的配置集成包,在 Docker 容器中运行数据库服务,安装数据库提供程序集成包,设置模块依赖与数据库提供程序, 配置 SQL Server、MySQL、PostgreSQL、Oracle 和 SQLite 数据库,编写不同类型数据库的连接字符串,多个 DbContext 上下文使用不同类型的数据库,上下文数据库迁移。
基于通用仓储实现自定义仓储类,使用自定义仓储实现替换默认通用仓储,配置隐式扩展属性,自定义 EF Core 仓储基类,抽象 DbContext 上下文接口,替换默认仓储上下文实现,在 EF Core 仓储上执行异步操作,关于 MongoDB 仓储实现的异步操作,使用 IAsyncQueryableExecuter 制行异步操作。
关于 ABP 数据访问抽象与 EFCore 数据访问实现,安装相关模块包并添加模块依赖,创建实体和 DbContext 上下文,指定连接字符串名称,实体数据库表映射配置,分离迁移上下文,实现设计时上下文迁移工厂,将上下文注册到容器,迁移多个上下文数据库,配置通用仓储,使用仓储生成演示数据,在服务中使用泛型仓储实现 CRUD 增删改查相关操作。
支持多数据库访问提供程序,灵活的多租户模块化微服务,通过示例学习可扩展的数据库分库分表部署方案,不同模块使用独立数据库,不同的租户使用独立数据库,多个模块共享数据库,多个租户共享数据库,不同租户的不同模块分离数据库,使用特性标记连接字符串名称,配置各种连接字符串,分析 ABP 源码,学习基于多租户的连接字符串解析器。
使用租户管理扩模块在数据库中存储租户配置,租户数据表结构配置,租户数据库架构迁移,迁移租户演示数据,配置租户管理权限,使用可视化 UI 界面管理租户,租户连接字符串管理,主机级别的功能特征管理,基于租户的功能特征管理,分析 APB 租户管理模块项目源码,学习租户管理系统实现原理。
租户存储器用于从数据源获取租户配置,使用默认租户存储器选项配置租户信息,使用配置文件配置租户信息,分析 ABP 源代码,理解多租户机制架构设计,使用租户中间件拦截请求,使用多个租户解析器从请求中解析租户,当前租户设置与获取接口,租户数据过滤器的内部实现原理。
多重租赁技术是一种软件架构技术,用于创建基于云构建的 SaaS 应用程序,关于 ABP 中的多租户模块包,多租户相关设置,数据库架构,多租户数据隔离方案,多租户共享数据库,多租户独享数据库,多租户混合数据库,理解用户的主机级别与租户级别,获取当前访客的租户信息,切换当前租户,禁用多租户数据过滤器,内置的多个租户解析器,基于二级子域名的租户解析器,自定义租户解析器。
在数据库中存储功能特征值,安装功能特征管理相关模块包,使用 EF Core 存储功能特征值,配置数据表结构,迁移数据库架构,设置功能特征管理权限,使用 UI 界面管理功能特征值,基于 API 接口管理功能特征值,分析功能特征管理模块源码的实现,深入理解工作机制和实现原理。
功能特征管理可在运行时启用禁用更改应用程序的功能行为,安装功能特征模块包,定义功能特征相关配置,子功能特征,更改已有模块的定义值,使用 [RequiresFeature] 和 IFeatureChecker 接口检查功能特征,在客户端检查功能特征,租户值提供者,版本值提供者,默认值提供者,自定义值提供者,使用自定义值存储器,分析 ABP 源码,理解功能特征模块实现原理。
使用 EF Core 和 MongoDB 在数据库中存储设置信息,安装设置管理相关模块,使用 EF Core 存储设置数据,配置表结构,迁移数据库表,理解设置视图组件提供者,设置页面导航菜单分组与权限控制,分析 ABP 源码,深入理解设置系统的工作机制和实现原理。
理解 ABP 设置模块与配置系统,使用提供者模式定义系统设置,在提供者中更改现有的设置定义,使用设置提供者获取设置值,在客户端读取设置值,实现设置值提供程序,默认值提供程序,配置文件提供程序,全局值提供程序,租户值提供程序,用户值提供程序,设置存储接口,配置加密解密服务,解析设置模块实现原理。
使用贡献者模式为审计日志动态追加内容,获取当前审计日志范围,手动创建审计日志范围,使用审计日志存储扩展模块,将审计日志保存到数据库表中,审计日志数据表的配置与迁移,阅读并理解 ABP 源码,学习基于拦截器的审计日志实现原理与处理机制,学习审计日志存储扩展模块源码,理解使用 EF Core 和 MongoDB 在数据库中存储审计日志的实现原理。
审计日志与系统日志的区别,基于 ABP 快速构建增删改查演示服务,安装审计日志模块包,在管道中插入审计中间件,审计日志配置选项,保存实体属性变更日志,启用和禁用服务操作审计日志,启用和禁用实体变更审计日志,审计日志的保存机制,理解审计日志对象结构图。
ABP 框架没有实现任何日志基础设施,沿用 ASP.NET Core 日志系统,推荐使用 Serilog 记录系统日志,日志记录相关配置,在控制台和文件中记录日志,基于 HTTP 请求的日志记录,日志输出模板设置,使用 ABP 中提供的 Serilog 扩展模块,将租户信息、用户信息、客户端信息和请求跟踪编号动态追加到日志条目中。