--- title: MiCake 简介 description: 了解 MiCake 是什么,它能为您做什么 --- ## 什么是 `MiCake`? **`MiCake`** 是一个基于 .NET 开发的轻量级`领域驱动设计(DDD)工具`。它旨在帮助开发者快速将现有项目转换为 DDD 风格,同时保持代码的简洁性和灵活性。 MiCake 不是一个传统意义上的"框架",而是一个便利的"工具"。它提供了实践 DDD 所需的各种组件和工具,但不会强制改变你的开发习惯。 ## 核心特点 ### 🚀 快捷 快速将您的项目转换为 DDD 风格,让您更专注于领域代码的编写,而不是框架的配置。通过简单的配置和少量代码,即可将现有项目升级为 DDD 架构。 ### 📐 规范 实现了 DDD 战术模式提出的几乎所有核心部件: - `实体(Entity)`:具有唯一标识的领域对象 - `值对象(Value Object)`:通过属性值进行比较的不可变对象 - `聚合根(Aggregate Root)`:聚合的根实体,作为外部访问的入口 - `仓储(Repository)`:提供聚合根的持久化操作 - `领域事件(Domain Event)`:捕获领域中发生的重要事件 - `领域服务(Domain Service)`:封装不属于实体或值对象的领域逻辑 - `工作单元(Unit of Work)`:管理业务事务和数据一致性 ### 🎯 方便 提供项目开发常用的基础功能: - **全局异常处理**:统一的异常捕获和处理机制 - **统一数据返回格式**:标准化的 API 响应结构 - **自动审计功能**:自动记录实体的创建和修改时间 - **软删除支持**:逻辑删除实体而非物理删除 - **依赖注入增强**:简化服务注册和生命周期管理 - **丰富的工具集**:缓存、转换器、查询、弹性等实用工具 ### 🪶 轻柔 "轻柔"是 MiCake 的核心设计理念: - **非侵入式**:无感融入现有项目,不改变你的编程习惯 - **低耦合**:框架代码与业务代码清晰分离 - **可选使用**:不强制使用 DDD,可以逐步引入 - **几乎无感**:当你不使用 DDD 特性时,甚至感觉不到它的存在 ## 设计理念 MiCake 在设计之初就被定位为 **"很薄的一层"**:
| 设计理念 | 描述 |
|---|---|
| 非侵入式 | MiCake 包裹你的 .NET 项目但并不干扰。你仍然可以使用原有的编程习惯、熟悉的类库和工具。它不会强制你采用特定的编码风格或架构模式。 |
| 自由无约束 | MiCake 不会约束你的开发风格。它只是提供工具和组件,让你可以选择性地使用。你可以部分使用 MiCake 的功能,也可以与其他框架和库自由组合。 |
| 不是 DDD | MiCake 本身不是 DDD,它只是让你更好地践行 DDD。DDD 是一套方法论,而 MiCake 是实践这套方法论的工具。你需要理解 DDD 的概念才能更好地使用 MiCake。 |
| 渐进式采用 | 你可以从最简单的功能开始,逐步引入更多的 DDD 特性: 1. 首先使用模块系统和依赖注入 2. 然后引入实体和仓储 3. 接着逐渐完善你的领域模型 |
| 适用场景 | 特点 |
|---|---|
| 新项目开发 | - 希望使用 DDD 方法构建新的 .NET 应用 - 需要快速搭建具有清晰架构的项目 - 团队熟悉或希望学习 DDD |
| 现有项目重构 | - 希望将现有项目逐步重构为 DDD 风格 - 需要改善代码的可维护性和可测试性 - 想要引入更好的业务逻辑组织方式 |
| 中小型企业应用 | - 复杂度适中的业务系统 - 需要良好的架构但不想引入重量级框架 - 希望保持技术栈的灵活性 |
| 学习和实践 DDD | - 学习领域驱动设计的概念和实践 - 需要一个轻量级的 DDD 参考实现 - 希望在实际项目中应用 DDD |