中 | EN
MASA.Contrib是基于MASA.BuildingBlocks提供开放, 社区驱动的可重用组件,用于构建网格应用程序。这些组件将被MASA Stack和MASA Labs等项目使用。
MASA.Contrib
├── solution items
│ ├── nuget.config
├── src
│ ├── Data
│ │ ├── MASA.Contrib.Data.UoW.EF 工作单元
│ │ └── MASA.Contribs.Data.Contracts.EF 规约EF版
│ ├── DDD
│ │ ├── MASA.Contribs.DDD.Domain 进程内、跨进程都支持
│ │ └── MASA.Contribs.DDD.Domain.Repository.EF
│ ├── Dispatcher
│ │ ├── MASA.Contrib.Dispatcher.Events 进程内事件
│ │ ├── MASA.Contrib.Dispatcher.IntegrationEvents.Dapr
│ │ └── MASA.Contrib.Dispatcher.IntegrationEvents.EventLogs.EF 跨进程事件
│ ├── ReadWriteSpliting
│ │ └── CQRS
│ │ │ └── MASA.Contrib.ReadWriteSpliting.CQRS CQRS
│ ├── Service
│ │ └── MASA.Contrib.Service.MinimalAPIs MinimalAPI最佳实践
├── test
│ ├── MASA.Contrib.Dispatcher.Events
│ │ ├── MASA.Contrib.Dispatcher.Events.BenchmarkDotnetTest
│ │ ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameter.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameterNotNull.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.CheckMethodsParameterType.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.CheckMethodsType.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.OnlyCancelHandler.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.CheckMethodsType.Tests
│ │ ├── MASA.Contrib.Dispatcher.Events.Tests
│ ├── MASA.Contrib.Data.UoW.EF.Tests
│ ├── MASA.Contrib.Dispatcher.IntegrationEvents.EventLogs.EF.Tests
│ ├── MASA.Contribs.DDD.Domain.Tests
│ ├── MASA.Contribs.DDD.Domain.Repository.EF.Tests
什么是MinimalAPI?用法介绍
优势:
- 对API进行分类添加到不同的Service,使得Service结构更清晰,摆脱流水账式编程
优势:
- 对Handler的编排
- 实现Saga
- Middleware
- Transaction
作用:
- Event与Handler解耦
- 对Handler的编排
- 实现Saga
- Middleware
- Transaction
基于Dapr实现跨进程的事件。用法介绍
优势:将用户自定义上下文与日志使用同一事务提交,确保原子性、一致性
优势:
- CQRS
- 领域服务
- 支持领域事件(进程内)、集成领域事件(跨进程)
- 支持对领域事件先压栈后统一发送
DDD // todo
基于EF实现的规约,用法介绍
优势:
- 查询的时候过滤已删除的信息
- 查询后开启事务
- 软删除
Install-Package MASA.Contribs.Data.Contracts.EF
builder.Services
.AddUoW<CustomDbContext>(dbOptions =>
{
dbOptions.UseSqlServer("server=localhost;uid=sa;pwd=P@ssw0rd;database=identity");
dbOptions.UseSoftDelete(builder.Services);//启动软删除
})
当实体继承ISoftware,且被删除时,将删除状态改为修改状态,并配合自定义Remove操作,实现软删除 支持查询的时候不查询被标记软删除的数据 与EventBus结合使用时,做到了第一次CUD后开启事务,当整个Handler出现异常后支持事务回滚
为确保整个源码的可靠性,单元测试覆盖率最低为90%