随笔分类 -  Masa Framework

摘要:概念 作为一个普通开发者, 我们负责的项目的使用群体大多数是本国的人民, 但不可避免的也有一些做外贸的业务或者给外企做的项目, 这个时候就要求我们的项目有服务全球客户的能力, 而一个支持国际化能力的框架会让我们项目的体验变得更好. 关于本地化我们听到最多的是I18N、L10N、G11N, 那它们分别 阅读全文
posted @ 2023-01-03 09:11 磊_磊 阅读(642) 评论(2) 推荐(3) 编辑
摘要:概念 什么是领域驱动设计 领域驱动的主要思想是, 利用确定的业务模型来指导业务与应用的设计和实现。主张开发人员与业务人员持续地沟通和模型的持续迭代,从而保证业务模型与代码的一致性,实现有效管理业务的复杂度,优化软件设计的目的 痛点 基于领域驱动设计的模型有很多难点需要克服 统一认知 语言统一, 领域 阅读全文
posted @ 2022-12-05 09:45 磊_磊 阅读(1400) 评论(3) 推荐(5) 编辑
摘要:概念 CQRS是一种与领域驱动设计和事件溯源相关的架构模式, 它的全称是Command Query Responsibility Segregation, 又叫命令查询职责分离, Greg Young在2010年创造了这个术语, 它是基于Bertrand Meyer 的 CQS (Command-Q 阅读全文
posted @ 2022-11-30 09:54 磊_磊 阅读(953) 评论(2) 推荐(1) 编辑
摘要:概述 跨进程事件总线允许发布和订阅跨服务传输的消息, 服务的发布与订阅不在同一个进程中 在Masa Framework中, 跨进程总线事件提供了一个可以被开箱即用的程序 IntegrationEvents: 提供了发件箱模式 IntegrationEvents.Dapr: 借助Dapr实现了消息的发 阅读全文
posted @ 2022-11-22 11:24 磊_磊 阅读(374) 评论(0) 推荐(2) 编辑
摘要:概述 事件总线是一种事件发布/订阅结构,通过发布订阅模式可以解耦不同架构层级,同样它也可以来解决业务之间的耦合,它有以下优点 松耦合 横切关注点 可测试性 事件驱动 发布订阅模式 通过下图我们可以快速了解发布订阅模式的本质 订阅者将自己关心的事件在调度中心进行注册 事件的发布者通过调度中心把事件发布 阅读全文
posted @ 2022-11-14 10:40 磊_磊 阅读(669) 评论(0) 推荐(4) 编辑
摘要:概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: StackExchange.Redis 功能 目前,MasaFramework为我们提供了以下能力 IDist 阅读全文
posted @ 2022-10-21 16:35 磊_磊 阅读(541) 评论(2) 推荐(2) 编辑
摘要:前言 在程序设计中,我们会遇到各种各样的异常问题,一个异常处理不仅仅可以帮助开发者快速的定位问题,也可以给用户更好的使用体验,那么我们在AspNetCore项目中如何捕获以及处理异常呢? 而对应AspNetCore程序,我们有两种异常处理方案,它们分别是: 异常中间件 异常过滤器 介绍 Masa F 阅读全文
posted @ 2022-10-14 10:01 磊_磊 阅读(664) 评论(0) 推荐(16) 编辑
摘要:在以前的MVC引用程序中,控制器负责接收输入信息、执行、编排操作并返回响应,它是一个功能齐全的框架,它提供了过滤器、内置了模型绑定与验证,并提供了很多可扩展的管道,但它偏重,不像其它语言是通过更加简洁的方式来开启Web之旅的,因此在.Net6.0官方引入了MinimalAPIs,即最小API,与MV 阅读全文
posted @ 2022-09-23 13:39 磊_磊 阅读(987) 评论(2) 推荐(19) 编辑
摘要:前言 什么是锁?什么是分布式锁?它们之间有什么样的关系? 什么是锁 加锁(lock)是2018年公布的计算机科学技术名词,是指将控制变量置位,控制共享资源不能被其他线程访问。通过加锁,可以确保在同一时刻只有一个线程在访问被锁住的代码片段,我们在单机部署时可使用最简单的加锁完成资源的独享,如: pub 阅读全文
posted @ 2022-09-16 13:07 磊_磊 阅读(709) 评论(1) 推荐(17) 编辑
摘要:前言 配置是我们必不可少的功能,我们在开发中,经常会遇到需要获取配置信息的需求,那么如何才能优雅的获取配置信息? 我们希望新的配置: 支持强类型 配置变更后通知 学习难度低 快速入门 根据使用场景我们将配置分为本地配置以及远程配置,下面我们就来看一下本地配置与远程配置是如何来使用的? 安装.Net 阅读全文
posted @ 2022-08-31 16:10 磊_磊 阅读(730) 评论(2) 推荐(23) 编辑
摘要:Masa的依赖注入系统是基于Microsoft的依赖注入扩展库(Microsoft.Extensions.DependencyInjection nuget包)开发的,因此,它的文档在Masa中也是有效的。 按照约定的注册 Masa引入了按照约定进行服务注册,依据约定大于配置,开发者无需做任何事,框 阅读全文
posted @ 2022-07-20 13:27 磊_磊 阅读(791) 评论(0) 推荐(21) 编辑
摘要:什么是对象存储 在工作中,我们经常需要将文件内容(文件或二进制流)存储在应用程序中,例如你可能要保存商品的封面图片。Masa框架为此提供了对象存储的功能,并对功能抽象,抽象给我们带来的好处: 存储的无关性(不关心存储平台时阿里云OSS还是腾讯云的COS) 更换存储平台成本更低(仅需要更改下存储的提供 阅读全文
posted @ 2022-07-12 14:54 磊_磊 阅读(1229) 评论(0) 推荐(21) 编辑
摘要:前言 Masa提供了基于EntityFramework的数据集成,并提供了数据过滤与软删除的功能,下面我们将介绍如何使用它? MasaDbContext入门 安装.Net 6.0 新建ASP.NET Core 空项目Assignment.MasaEntityFramework,并安装Masa.Con 阅读全文
posted @ 2022-07-05 15:45 磊_磊 阅读(2181) 评论(15) 推荐(20) 编辑
摘要:前言 在项目中我们会经常遇到对象的映射,比如像Model和Dto之间的映射,或者是对象的深拷贝,这些都是需要我们自己实现的。此时,项目中会出现很多初始化对象的代码,这些代码写起来相当的枯燥乏味,那么有没有什么办法减轻我们的工作量,使得我们可以把时间花费到业务功能上呢? 目前.Net中的对象映射框架, 阅读全文
posted @ 2022-06-30 10:31 磊_磊 阅读(1894) 评论(4) 推荐(14) 编辑
摘要:前言 上一篇我们讲了使用HttpClient的方式调用,那么如果我们现在需要更换为通过dapr实现服务调用,我们需要做哪些事情呢? Caller.Dapr 入门 如果我们的项目原本使用的是Caller.HttpClient,现在希望改为使用Caller.Dapr,那么我们需要做什么呢? 改造Call 阅读全文
posted @ 2022-06-14 14:12 磊_磊 阅读(1464) 评论(7) 推荐(23) 编辑
摘要:前言 绝大多数项目都离不开服务调用,服务的调用方式通常是基于Http、RPC协议的调用,需要获取到对应服务的域名或者ip地址以及详细的控制器方法后才能进行调用,如果项目需要支持分布式部署,则需要借助服务发现或者Nginx才能实现。 但随着Dapr的崛起,服务的调用方式也发生了变化,它不仅仅提供了处理 阅读全文
posted @ 2022-05-09 11:06 磊_磊 阅读(1756) 评论(16) 推荐(26) 编辑
摘要:介绍 Dapr简化了云原生开发,让开发可以把焦点放在应用的业务逻辑上,从而让代码简单、可移植,那作为一个.Net开发者,我们也希望项目可以快速用上dapr,那究竟应该如何做呢? Dapr提出了Sidecar(边车)的概念,在启动项目时再额外启动一个Sidecar, 通过Sidecar可以解决进程间通 阅读全文
posted @ 2022-04-19 18:36 磊_磊 阅读(3462) 评论(11) 推荐(30) 编辑

点击右上角即可分享
微信分享提示