# dddify **Repository Path**: esofar/dddify ## Basic Information - **Project Name**: dddify - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-15 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Dddify

一个面向现代 ASP.NET Core 应用程序的轻量级 DDD 集成框架。

build NuGet License DDD Driven .NET

文档 | English | 简体中文 | GitHub

## 概览 `Dddify` 帮助团队构建在领域逻辑、应用工作流、基础设施关注点与交付层之间具有清晰边界的应用。它围绕 DDD、CQRS、校验、依赖注册、当前用户访问、本地化以及 Entity Framework Core 集成,提供了一组实用的基础构件。 `Dddify` 并不是要替代 ASP.NET Core 生态,而是建立在 MediatR、FluentValidation、Scrutor、Mapster 和 EF Core 等成熟工具之上,让你可以把更多精力放在业务建模上,而不是重复编写基础设施胶水代码。 ## 特性 - 提供聚合、值对象、仓储和领域事件等领域驱动设计基础构件 - 体现整洁架构思想的分层方式,让业务规则与基础设施细节保持隔离 - 提供面向 CQRS 的命令、查询与处理器抽象 - 内置基于 MediatR 的校验与工作单元管道行为 - 基于 Scrutor 的约定式依赖注册 - 开箱即用的 FluentValidation 集成 - 提供 EF Core 工作单元支持与仓储基类 - 支持基于 JSON 的本地化 - 提供基于 UTC 存储基线的时间与时区处理能力 - 提供适用于应用层与 Web 场景的当前用户抽象 - 通过 `AddDddify(...)` 提供轻量且可组合的配置方式 ## 为什么选择 Dddify - 让领域代码更清晰、更易维护 - 减少处理器注册、校验和基础设施接线的样板代码 - 在不过度增加框架负担的前提下遵循分层架构与整洁架构实践 - 与 ASP.NET Core 生态自然集成 - 保持灵活性,而不是被重量级框架绑定 ## 安装 ```bash dotnet add package Dddify ``` ## 快速开始 在 ASP.NET Core 应用中注册 `Dddify`: ```csharp var builder = WebApplication.CreateBuilder(args); builder.Services.AddDddify(cfg => { cfg.AddTiming(); cfg.AddLocalization(); cfg.AddCurrentUser(); cfg.AddDbContextWithUnitOfWork(options => { options.UseSqlite(builder.Configuration.GetConnectionString("Default")); }); ... }); ``` 然后按清晰的分层结构组织你的应用,例如: ```text MyComany.MyApp.Domain MyComany.MyApp.Application MyComany.MyApp.Infrastructure MyComany.MyApp.Web ``` ## 核心模块 - `SharedKernel` 提供 `AggregateRoot`、`Entity`、`ValueObject`、仓储契约和领域事件等核心 DDD 抽象。 - `Messaging` 提供 CQRS 接口、领域事件处理器,以及用于校验和工作单元的管道行为。 - `EntityFrameworkCore` 提供 EF Core 集成、`IUnitOfWork`、仓储基类、分页辅助方法和领域事件分发支持。 - `Identity` 提供当前用户抽象以及基于 Provider 的用户解析方式。 - `Localization` 提供基于 JSON 的本地化和请求本地化集成。 - `Timing` 提供围绕 UTC 基线设计的时间与时区抽象,包括当前上下文时区解析和日期时间转换辅助能力。 - `AspNetCore` 提供诸如 API 结果包装等面向 Web 的集成功能。 ## 示例 仓库在 [samples/README.md](https://github.com/esofar/dddify/tree/main/samples/README.md) 下提供了官方示例应用。 `TodoApp` 展示了: - 分层 DDD 结构 - 围绕聚合展开的领域建模 - 命令、查询、校验器和领域事件 - 基于工作单元的 EF Core 持久化 - 一个可运行的 ASP.NET Core Razor Pages UI 该示例被刻意保持为小而聚焦的形式。它适合作为入门参考,但由于目前主要围绕单一聚合展开,还不能完整体现 DDD 在更复杂业务领域中的优势。 ## 生态 `Dddify` 设计上可与以下技术良好协作: - ASP.NET Core - MediatR - FluentValidation - Entity Framework Core - Mapster - Scrutor