--- 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. 接着逐渐完善你的领域模型
## 适用场景 MiCake 特别适合以下场景:
适用场景 特点
新项目开发 - 希望使用 DDD 方法构建新的 .NET 应用
- 需要快速搭建具有清晰架构的项目
- 团队熟悉或希望学习 DDD
现有项目重构 - 希望将现有项目逐步重构为 DDD 风格
- 需要改善代码的可维护性和可测试性
- 想要引入更好的业务逻辑组织方式
中小型企业应用 - 复杂度适中的业务系统
- 需要良好的架构但不想引入重量级框架
- 希望保持技术栈的灵活性
学习和实践 DDD - 学习领域驱动设计的概念和实践
- 需要一个轻量级的 DDD 参考实现
- 希望在实际项目中应用 DDD
## 环境要求 ### 开发环境 - **.NET Core 10.0** 及以上版本 - **Visual Studio Code**(推荐) - 或 **Visual Studio 2026** 及以上版本 ## 性能考虑 MiCake 作为一个轻量级工具包,对性能的影响微乎其微: - **最小运行时开销**:核心抽象基于接口,JIT 优化效果好 - **按需加载**:模块化设计,只加载使用的功能 - **无反射滥用**:关键路径避免使用反射 - **内存友好**:合理的对象生命周期管理 ## 社区与支持 ### 官方资源 - **GitHub 仓库**:[https://github.com/MiCake/MiCake](https://github.com/MiCake/MiCake) - **官方网站**:[https://micake.github.io/](https://micake.github.io/) - **NuGet 包**:[搜索 "MiCake" 查看所有可用包](https://www.nuget.org/packages?q=MiCake) ### 获取帮助 - **问题反馈**:通过 GitHub Issues 提交 Bug 或功能建议 - **讨论交流**:GitHub Discussions 讨论使用问题 - **技术博客**:关注作者博客了解最新进展 ### 贡献代码 我们欢迎社区贡献!你可以: - 提交 Pull Request 改进代码 - 完善文档和示例 - 分享使用经验和最佳实践 - 帮助回答其他用户的问题 ## 版本规划 MiCake 遵循语义化版本规范(SemVer): - **主版本号**:不兼容的 API 变更 - **次版本号**:向下兼容的功能新增 - **修订号**:向下兼容的问题修复 当前版本支持 .NET 10.0+,未来将持续跟进 .NET 新版本。 ## 下一步 - 阅读 [快速开始](/getting-started/quick-start/) 了解如何在项目中集成 MiCake - 学习 [核心概念](/getting-started/core-concepts/) 理解 MiCake 的关键概念 - 查看 [领域驱动设计](/domain-driven/entity/) 部分了解 DDD 组件的使用