12. 事件总线 - 跨进程事件总线
11. 事件总线 - 进程内事件总线

11. 事件总线 - 进程内事件总线

事件总线是一种事件发布/订阅架构,通过解耦发布者和订阅者将业务解耦,这里的事件可以理解为消息,本文中统一称为事件,它有以下优点:

  • 松耦合
  • 横切关注点
  • 可测试性
  • 事件驱动
阅读更多
10. 雪花id

10. 雪花id

前言

雪花算法是Twitter开源的分布式ID生成算法,雪花算法生成后是一个64bit大小的整数(long型),它的优势:

  • 高性能: 每秒可生成数百万的id
  • 生成的id是唯一的,不会重复
  • id是有顺序的
阅读更多
9. 锁与分布式锁
8. 更优雅的获取配置信息

8. 更优雅的获取配置信息

前言

配置是我们必不可少的功能,我们在开发中,经常会遇到需要获取配置信息的需求,那么如何才能优雅的获取配置信息?

阅读更多
7. 依赖注入

7. 依赖注入

Masa的依赖注入系统是基于Microsoft的依赖注入扩展库(Microsoft.Extensions.DependencyInjection nuget包)开发的,因此,它的文档在Masa中也是有效的。

阅读更多
6. 对象存储

6. 对象存储

什么是对象存储

在工作中,我们经常需要将文件内容(文件或二进制流)存储在应用程序中,例如你可能要保存商品的封面图片。Masa框架为此提供了对象存储的功能,并对功能抽象,抽象给我们带来的好处:

  • 存储的无关性(不关心存储平台时阿里云OSS还是腾讯云的COS)
  • 更换存储平台成本更低(仅需要更改下存储的提供者,业务侵染低)
  • 支持自定义存储提供者(仅需要自行实现IClient
阅读更多
5. 数据访问 - EntityFramework集成
4. 对象映射 - Mapping.Mapster

4. 对象映射 - Mapping.Mapster

前言

在项目中我们会经常遇到对象的映射,比如像Model和Dto之间的映射,或者是对象的深拷贝,这些都是需要我们自己实现的。此时,项目中会出现很多初始化对象的代码,这些代码写起来相当的枯燥乏味,那么有没有什么办法减轻我们的工作量,使得我们可以把时间花费到业务功能上呢?

目前,.Net中的对象映射框架,功能强大且性能极佳的对象映射框架已经存在,其中使用最多的有:

阅读更多
3. Caller 服务调用 - dapr

3. Caller 服务调用 - dapr

前言

上一篇我们讲了使用HttpClient的方式调用,那么如果我们现在需要更换为通过dapr实现服务调用,我们需要做哪些事情呢?

阅读更多