垂直切片架构(VSA)是 dotnet-claude-kit 支持的多种 .NET 架构之一,核心是按功能而非按层组织代码。每个功能是一个自包含的垂直切片,包含端点、处理器、请求/响应类型和验证,避免在 Controllers、Services、Repositories 之间跳转。功能之间不直接引用,共享关注点放入 Common/ 或 Shared/ 目录;处理器是工作单元,每个处理器只做一件事。
主要能力与模式:
- 功能文件夹结构:Features/Orders/CreateOrder.cs 等,每个操作一个文件,共享代码放功能内 Shared/。
- 模式 A(推荐默认):源码生成的 Mediator,MIT 许可、无反射、兼容 Native AOT,使用 IRequest<T> / IRequestHandler<TRequest,TResponse> 与管道行为,包为 Mediator.Abstractions + Mediator.SourceGenerator,注册用 builder.Services.AddMediator()。
- 模式 B:Wolverine,基于约定,无需实现接口,通过静态 Handle 方法发现处理器。
- 模式 C:原生处理器类,无外部依赖,适合小项目或需完全控制的团队。
可选模块边界:大型应用可拆分为独立类库模块,各自拥有 Features 与 DbContext,通过集成事件(Wolverine 或 MassTransit)或共享契约通信。跨切面关注点放在功能文件夹之外,如 ValidationBehavior 管道行为。
适用场景:新 .NET 项目、希望减少分层抽象、需要按功能组织代码的团队;单体应用变复杂时可加模块边界,每个模块内仍用 VSA。
限制与反模式:不要在切片内再建服务层或仓储抽象;不要直接跨功能引用处理器;不要把 CRUD、业务逻辑、映射全塞进一个巨型功能文件。资料未提供安装命令、收费与价格信息。