随笔分类 -  Abp vNext 框架

记录了自己在使用 Abp vNext 框架过程中的一些体会。
摘要:一、简介 ABP vNext 使用 Volo.Abp.Sms 包和 Volo.Abp.Emailing 包将短信和电子邮件作为基础设施进行了抽象,开发人员仅需要在使用的时候注入 ISmsSender 或 IEmailSender 即可实现短信发送和邮件发送。 二、源码分析 2.1 启动模块 短信发送 阅读全文
posted @ 2021-06-28 09:18 MyZony 阅读(2016) 评论(5) 推荐(5) 编辑
摘要:简介 ABP vNext 框架使用 xUnit 作为单元测试组件,官方的所有模块都编写了大量的 单元/集成测试 确保功能正常。由于 ABP vNext 模块化系统的原因,开发人员在建立单元测试项目的时候需要集成 Volo.Abp.UnitTest 项目,这样在执行单元测试的时候才不会缺少必要组件。 阅读全文
posted @ 2021-04-27 14:11 MyZony 阅读(1229) 评论(2) 推荐(4) 编辑
摘要:背景 ABP vNext 默认对异常响应进行了处理,现在某个项目需要自定义异常响应结果。 问题 在 ABP vNext 的 MVC 模块当中,可以看到是通过 AddService(typeof(AbpExceptionFilter)) 添加的过滤器。最初我的想法是在 ConfigureService 阅读全文
posted @ 2020-11-22 21:22 MyZony 阅读(939) 评论(1) 推荐(1) 编辑
摘要:一、简介 ABP vNext 提供了全套的本地化字符串支持,具体用法可以参考官方使用文档。vNext 本身是对 Microsoft 提供的本地化组件进行了实现,通过 JSON 文件提供本地化源,这一点与老 ABP 不太一样,老 ABP 框架是全套自己手撸。vNext 针对服务端和客户端都提供了文字本 阅读全文
posted @ 2020-09-25 16:28 MyZony 阅读(3737) 评论(0) 推荐(11) 编辑
摘要:一、简介 ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统,主要用于存储大型二进制文件。ABP 抽象了一套通用的 BLOB 体系,开发人员在存储或读取二进制文件时,可以忽略具体实现,直接使用 IBlobContainer 或 IBlobContainer<T> 进行操作。官方的 阅读全文
posted @ 2020-07-27 20:09 MyZony 阅读(3655) 评论(8) 推荐(17) 编辑
摘要:一、简介 ABP vNext 原生支持多租户体系,可以让开发人员快速地基于框架开发 SaaS 系统。ABP vNext 实现多租户的思路也非常简单,通过一个 来分割各个租户的数据,并且在查询的时候使用统一的全局过滤器( 类似于软删除 )来筛选数据。 关于多租户体系的东西,基本定义与核心逻辑存放在 V 阅读全文
posted @ 2020-03-03 11:39 MyZony 阅读(10070) 评论(14) 推荐(37) 编辑
摘要:一、简要介绍 在以前的文章里面,我们介绍了 ABP vNext 在 DDD 模块定义了仓储的接口定义和基本实现。本章将会介绍,ABP vNext 是如何将 EntityFramework Core 框架跟仓储进行深度集成。 ABP vNext 在集成 EF Core 的时候,不只是简单地实现了仓储模 阅读全文
posted @ 2020-01-08 10:44 MyZony 阅读(4948) 评论(7) 推荐(7) 编辑
摘要:一、简要介绍 ABP vNext 封装了两种事件总线结构,第一种是 ABP vNext 自己实现的本地事件总线,这种事件总线无法跨项目发布和订阅。第二种则是分布式事件总线,ABP vNext 自己封装了一个抽象层进行定义,并使用 RabbitMQ 编写了一个基本实现。 在使用方式上,两种事件总线的作 阅读全文
posted @ 2019-12-10 17:26 MyZony 阅读(6096) 评论(6) 推荐(15) 编辑
摘要:问题 在使用自定义 Ef Core 仓储和 ABP vNext 注入的默认仓储时,通过两个 Repository 进行 Join 操作,提示 。这个异常信息翻译成中文的大概意思就是,你不能使用两个 DbContext 里面的 DbSet 进行 Join 查询。 如果将自定义仓储改为 进行注入,是可以 阅读全文
posted @ 2019-11-14 23:14 MyZony 阅读(5563) 评论(1) 推荐(5) 编辑
摘要:一、简要说明 文章信息: 基于的 ABP vNext 版本:1.0.0 创作日期:2019 年 10 月 24 日晚 更新日期:暂无 ABP vNext 提供了后台工作者和后台作业的支持,基本实现与原来的 ABP 框架类似,并且 ABP vNext 还提供了对 HangFire 和 RabbitMQ 阅读全文
posted @ 2019-10-25 16:27 MyZony 阅读(4724) 评论(4) 推荐(8) 编辑
摘要:一、简要说明 文章信息: 基于的 ABP vNext 版本:1.0.0 创作日期:2019 年 10 月 23 日晚 更新日期:2019 年 10 月 24 日 ABP vNext 针对用户可编辑的配置,提供了单独的 Volo.Abp.Settings 模块,本篇文章的后面都将这种用户可变更的配置, 阅读全文
posted @ 2019-10-24 09:37 MyZony 阅读(5291) 评论(9) 推荐(5) 编辑
摘要:一、简要说明 ABP vNext 针对接口参数的校验工作,分别由过滤器和拦截器两步完成。过滤器内部使用的 ASP.NET Core MVC 所提供的 进行处理,而拦截器使用的是 ABP vNext 自己提供的一套 进行校验工作。 关于参数验证相关的代码,分布在以下三个项目当中: Volo.Abp.A 阅读全文
posted @ 2019-10-23 09:45 MyZony 阅读(4569) 评论(5) 推荐(8) 编辑
摘要:一、问题 该问题经常出现在 ABP vNext 框架当中,要复现该问题十分简单,只需要你注入一个 仓储,在任意一个地方调用 方法。 例如上面的测试代码,不出意外就会提示 异常,具体的异常内容信息: 其实已经说得十分明白了,因为你要调用的 已经被释放了,所以会出现这个异常信息。 二、原因 2.1 为什 阅读全文
posted @ 2019-10-10 11:45 MyZony 阅读(2676) 评论(0) 推荐(6) 编辑
摘要:一、简要说明 ABP vNext 当中的审计模块早在 "依赖注入与拦截器" 一文中有所提及,但没有详细的对其进行分析。 审计模块是 ABP vNext 框架的一个基本组件,它能够提供一些实用日志记录。不过这里的日志不是说系统日志,而是说接口每次调用之后的执行情况(执行时间、传入参数、异常信息、请求 阅读全文
posted @ 2019-10-08 11:25 MyZony 阅读(5565) 评论(0) 推荐(11) 编辑
摘要:一、问题 新项目是基于 ABP vNext 框架进行开发的,所以我要求为每层编写单元测试。在同事为某个仓储编写单元测试的时候,发现了一个奇怪的问题。他的对某个聚合根的 A 字段进行了更新,随后对某个导航属性 B 也进行了变更,最后通过仓储提供的 方法对变更的数据进行持久化。 结果再次查出来的时候,发 阅读全文
posted @ 2019-09-18 10:51 MyZony 阅读(1783) 评论(6) 推荐(2) 编辑
摘要:一、简要说明 在上篇文章里面,我们在 当中看到了权限检测代码,通过注入 就可以实现权限检测。不过跳转到源码才发现,这个接口是 ASP.NET Core 原生提供的 “基于策略” 的权限验证接口,这就说明 ABP vNext 基于原生的授权验证框架进行了自定义扩展。 让我们来看一下 Volo.Abp. 阅读全文
posted @ 2019-08-07 08:08 MyZony 阅读(14787) 评论(13) 推荐(25) 编辑
摘要:一、简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块。 PS:最近博主也是在恶补 DDD 相关的知识,这里推荐大家看一下 "ThoughtWorks" 的 DDD 相关文章。 关于 DDD 相关的著作,我这儿 阅读全文
posted @ 2019-07-25 20:04 MyZony 阅读(3717) 评论(4) 推荐(7) 编辑
摘要:一、简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体、仓储、值对象、领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都存放在 Volo.Abp.Ddd.Domain 项目当中。 本篇文章将会侧重于理论讲解,但也只是一个 阅读全文
posted @ 2019-07-20 09:39 MyZony 阅读(8529) 评论(9) 推荐(20) 编辑
摘要:一、简要说明 统一工作单元是一个比较重要的基础设施组件,它负责管理整个业务流程当中涉及到的数据库事务,一旦某个环节出现异常自动进行回滚处理。 在 ABP vNext 框架当中,工作单元被独立出来作为一个单独的模块( Volo.Abp.Uow )。你可以根据自己的需要,来决定是否使用统一工作单元。 二 阅读全文
posted @ 2019-07-01 09:28 MyZony 阅读(8067) 评论(20) 推荐(17) 编辑
摘要:一、简要说明 ABP vNext 框架在使用依赖注入服务的时候,是直接使用的微软提供的 Microsoft.Extensions.DependencyInjection 包。这里与原来的 ABP 框架就不一样了,原来的 ABP 框架还需要抽象出来一个 用来管理整个 IoC 容器,现在则直接操作 与 阅读全文
posted @ 2019-04-23 10:40 MyZony 阅读(10026) 评论(7) 推荐(20) 编辑