共计 26 篇文章

关于 Abp 替换了 DryIoc 框架之后的问题

在之前有些过一篇文章 《使用 DryIoc 替换 Abp 的 DI 框架》 ,在该文章里面我尝试通过以替换 IocManager 内部的 IContainer 来实现使用我们自己的 DI 框架。替换了之后我们基本上是可以正常使用了,不过仍然还存在有以下两个比较显著的问题。 拦截器功能无法正常使用,需要重复递归查找真实类型,消耗性能。 针对于通过 IServiceCollection.AddScoped() 方法添加的 Scoped 类型的解析存在问题。 ...

使用 DryIoc 替换 Abp 的 DI 框架

一、背景 你说我 Castle Windsor 库用得好好的,为啥要大费周章的替换成 DryIoc 库呢?那就是性能,DryIoc 是一款优秀而且轻量级的 DI 框架,整个项目代码就两个文件,加起来代码 1 万行左右(PS: 大部分都是注释)。 在各个 Ioc 容器的性能评测当中,DryIoc 以其优异的性能成为我选择使用他的原因。Abp ...

Abp 源码分析:十六、后台工作与后台工作者

0. 简介 在某些时候我们可能会需要执行后台任务,或者是执行一些周期性的任务。比如说可能每隔 1 个小时要清除某个临时文件夹内的数据,可能用户会要针对某一个用户群来群发一组短信。前面这些就是典型的应用场景,在 Abp 框架里面为我们准备了后台作业和后台工作者来帮助我们解决这个问题。 后台作业与后台工作者的区别是,前者主要用于某些耗时较长的任务,而不想阻塞用户的时候所使用。后者主要用于周期性的执行某些任务,从 “工作者” 的名字可以看出来,就是一个个工人,而且他们每个工人都拥有单独的后台线程。 0.1 典型场景 后台作业 某个用户按下了报表按钮来生成一个需要长时间等待的报表。 ...

使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试

0. 简要介绍 WRK 是一款轻量且易用的 HTTP 压力测试工具,通过该工具我们可以方便地对我们所开发的 WebAPI 项目进行压力测试,并且针对测试的情况返回结果。 PS:Wrk 并不能针对测试的结果生成动态的图表,如果有这种需要,可以尝试使用另一款工具 Vegeta。该项目使用的 Golang 进行编写,其 GitHub 地址为:https://github.com/tsenart/ ...