摘要: 概念 CQRS是一种与领域驱动设计和事件溯源相关的架构模式, 它的全称是Command Query Responsibility Segregation, 又叫命令查询职责分离, Greg Young在2010年创造了这个术语, 它是基于Bertrand Meyer 的 CQS (Command-Q 阅读全文
posted @ 2022-11-30 09:54 磊_磊 阅读(302) 评论(0) 推荐(1) 编辑
摘要: 概述 跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中 在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序 IntegrationEvents: 提供了发件箱模式 IntegrationEvents.Dapr: 借助Dapr实现了消息的发 阅读全文
posted @ 2022-11-22 11:24 磊_磊 阅读(155) 评论(0) 推荐(2) 编辑
摘要: 概述 事件总线是一种事件发布/订阅结构,通过发布订阅模式可以解耦不同架构层级,同样它也可以来解决业务之间的耦合,它有以下优点 松耦合 横切关注点 可测试性 事件驱动 发布订阅模式 通过下图我们可以快速了解发布订阅模式的本质 订阅者将自己关心的事件在调度中心进行注册 事件的发布者通过调度中心把事件发布 阅读全文
posted @ 2022-11-14 10:40 磊_磊 阅读(384) 评论(0) 推荐(4) 编辑
摘要: 概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: StackExchange.Redis 功能 目前,MasaFramework为我们提供了以下能力 IDist 阅读全文
posted @ 2022-10-21 16:35 磊_磊 阅读(410) 评论(2) 推荐(2) 编辑
摘要: 在以前的MVC引用程序中,控制器负责接收输入信息、执行、编排操作并返回响应,它是一个功能齐全的框架,它提供了过滤器、内置了模型绑定与验证,并提供了很多可扩展的管道,但它偏重,不像其它语言是通过更加简洁的方式来开启Web之旅的,因此在.Net6.0官方引入了MinimalAPIs,即最小API,与MV 阅读全文
posted @ 2022-09-23 13:39 磊_磊 阅读(825) 评论(2) 推荐(19) 编辑
摘要: 前言 什么是锁?什么是分布式锁?它们之间有什么样的关系? 什么是锁 加锁(lock)是2018年公布的计算机科学技术名词,是指将控制变量置位,控制共享资源不能被其他线程访问。通过加锁,可以确保在同一时刻只有一个线程在访问被锁住的代码片段,我们在单机部署时可使用最简单的加锁完成资源的独享,如: pub 阅读全文
posted @ 2022-09-16 13:07 磊_磊 阅读(563) 评论(1) 推荐(17) 编辑
摘要: 概念 CQRS是一种与领域驱动设计和事件溯源相关的架构模式, 它的全称是Command Query Responsibility Segregation, 又叫命令查询职责分离, Greg Young在2010年创造了这个术语, 它是基于Bertrand Meyer 的 CQS (Command-Q 阅读全文
posted @ 2022-11-30 09:54 磊_磊 阅读(302) 评论(0) 推荐(1) 编辑
摘要: 概述 跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中 在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序 IntegrationEvents: 提供了发件箱模式 IntegrationEvents.Dapr: 借助Dapr实现了消息的发 阅读全文
posted @ 2022-11-22 11:24 磊_磊 阅读(155) 评论(0) 推荐(2) 编辑
摘要: 概述 事件总线是一种事件发布/订阅结构,通过发布订阅模式可以解耦不同架构层级,同样它也可以来解决业务之间的耦合,它有以下优点 松耦合 横切关注点 可测试性 事件驱动 发布订阅模式 通过下图我们可以快速了解发布订阅模式的本质 订阅者将自己关心的事件在调度中心进行注册 事件的发布者通过调度中心把事件发布 阅读全文
posted @ 2022-11-14 10:40 磊_磊 阅读(384) 评论(0) 推荐(4) 编辑
摘要: 概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: StackExchange.Redis 功能 目前,MasaFramework为我们提供了以下能力 IDist 阅读全文
posted @ 2022-10-21 16:35 磊_磊 阅读(410) 评论(2) 推荐(2) 编辑
摘要: 前言 在程序设计中,我们会遇到各种各样的异常问题,一个异常处理不仅仅可以帮助开发者快速的定位问题,也可以给用户更好的使用体验,那么我们在AspNetCore项目中如何捕获以及处理异常呢? 而对应AspNetCore程序,我们有两种异常处理方案,它们分别是: 异常中间件 异常过滤器 介绍 Masa F 阅读全文
posted @ 2022-10-14 10:01 磊_磊 阅读(513) 评论(0) 推荐(16) 编辑
摘要: 在以前的MVC引用程序中,控制器负责接收输入信息、执行、编排操作并返回响应,它是一个功能齐全的框架,它提供了过滤器、内置了模型绑定与验证,并提供了很多可扩展的管道,但它偏重,不像其它语言是通过更加简洁的方式来开启Web之旅的,因此在.Net6.0官方引入了MinimalAPIs,即最小API,与MV 阅读全文
posted @ 2022-09-23 13:39 磊_磊 阅读(825) 评论(2) 推荐(19) 编辑
摘要: 前言 什么是锁?什么是分布式锁?它们之间有什么样的关系? 什么是锁 加锁(lock)是2018年公布的计算机科学技术名词,是指将控制变量置位,控制共享资源不能被其他线程访问。通过加锁,可以确保在同一时刻只有一个线程在访问被锁住的代码片段,我们在单机部署时可使用最简单的加锁完成资源的独享,如: pub 阅读全文
posted @ 2022-09-16 13:07 磊_磊 阅读(563) 评论(1) 推荐(17) 编辑
摘要: 前言 配置是我们必不可少的功能,我们在开发中,经常会遇到需要获取配置信息的需求,那么如何才能优雅的获取配置信息? 我们希望新的配置: 支持强类型 配置变更后通知 学习难度低 快速入门 根据使用场景我们将配置分为本地配置以及远程配置,下面我们就来看一下本地配置与远程配置是如何来使用的? 安装.Net 阅读全文
posted @ 2022-08-31 16:10 磊_磊 阅读(605) 评论(2) 推荐(23) 编辑
摘要: Masa的依赖注入系统是基于Microsoft的依赖注入扩展库(Microsoft.Extensions.DependencyInjection nuget包)开发的,因此,它的文档在Masa中也是有效的。 按照约定的注册 Masa引入了按照约定进行服务注册,依据约定大于配置,开发者无需做任何事,框 阅读全文
posted @ 2022-07-20 13:27 磊_磊 阅读(640) 评论(0) 推荐(21) 编辑
摘要: 什么是对象存储 在工作中,我们经常需要将文件内容(文件或二进制流)存储在应用程序中,例如你可能要保存商品的封面图片。Masa框架为此提供了对象存储的功能,并对功能抽象,抽象给我们带来的好处: 存储的无关性(不关心存储平台时阿里云OSS还是腾讯云的COS) 更换存储平台成本更低(仅需要更改下存储的提供 阅读全文
posted @ 2022-07-12 14:54 磊_磊 阅读(1102) 评论(0) 推荐(21) 编辑