Skip to content

wrsxinlang/MiCake

 
 

Repository files navigation

MiCake

一款基于.Net Core平台的 “超轻柔” 领域驱动设计(DDD)组件

Nuget Version Nuget Downloads Maintainability Build Status Azure DevOps tests Azure DevOps coverage Board Status

🍡 特点

  • “快捷” —— 快速将您的项目转换为DDD风格,让您更专注于您的领域代码。
  • “规范” —— 实现了DDD战术模式提出的几乎所有部件,便于使用领域驱动思想来规范项目。
  • “方便” —— 提供项目常用的基础功能(全局异常处理,数据格式化等),便于快速构建项目。
  • “灵活” —— 通过模块进行解耦,您可以根据自身需求使用特定的MiCake模块。
  • “轻柔” —— 无感的融入现有的项目,甚至感觉不到它的存在。

🍧 简介

MiCake(中文名我更喜欢叫它为“米蛋糕”😜)是基于 .Net Standard 所开发的领域驱动设计(DDD)工具包。

您只需要通过 NuGet 包安装它,并且编写非常少量的代码就能快速使您的项目转变为DDD风格。

它提供了DDD战术模式中的大部分部件,比如聚合根、实体、值对象、领域服务等等,通过这些部件建立您的“领域对象”,将开发重心放在领域层中,其它大部分的交互逻辑都将由MiCake来帮您完成。

“轻柔”的“组件”MiCake在设计之初就被定位为“很薄的一层”,它包裹 .NET 项目但并不干扰,您仍然可以使用原有的编程习惯进行开发。

当不使用DDD风格时,您甚至都感觉不到它的存在。它很轻,轻到可以忽略;它不是一个“框架”,不会约束您的开发风格;它不是DDD,它只是让您更好的践行DDD

MiCake的核心是提供领域驱动设计(DDD)的功能,但同时还提供了其它的扩展功能便于您更快速的构建出应用程序:比如依赖注入、自动审计、全局异常处理等等功能。

🍒 用法

所需环境版本

  • .NET Core 3.0及以上版本
  • Visual Studio 2019

在您的Asp Net Core项目中通过NuGet安装MiCake.AspNetCore.Start

Install-Package MiCake.AspNetCore.Start

新增一个叫做MyEntryModule.cs的文件,该类的作用是告诉MiCake该从哪个程序集启动:

public class MyEntryModule : MiCakeModule
{
}

将您的DbContext继承自MiCakeDbContext:

public class MyDbContext : MiCakeDbContext
{
    public MyDbContext(DbContextOptions options) : base(options)
    {
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        //不要删除该行代码
        base.OnModelCreating(modelBuilder);
    }
}

Startup.cs中添加MiCake服务:

public void ConfigureServices(IServiceCollection services)
{
    ………………

   //添加该代码 用于配置MiCake
   services.AddMiCakeWithDefault<MyDbContext, MyEntryModule>()
           .Build();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    …………

    //添加该代码 用于启动MiCake。确保该代码位于UseEndpoints之前
    app.StartMiCake();
    app.UseEndpoints(…………);
}

是的,就是如此简单。AddMiCakeWithDefaultMiCake所提供的基础使用方案,您可以通过查阅文档来获取更丰富的使用方法。

文档中心提供了一篇《Wiki - 搭建起步程序》来介绍如何使用MiCake,也许您可以从中获取一些帮助。

🍉 文档

点击跳转至:文档中心

🍊 示例项目

您可能会对大量的文字教程而感到枯燥,因此我们提供了以下的几个演示项目供您参考:

  • 预约星 (Coming Soon)
  • 旅人帐 (Coming Soon)

MiCake.Samples仓库中放置了一些MiCake所公开的示例项目和实验性项目,您可以跳转至该仓库进行查阅.

🍍 当前版本

Nuget Package 版本信息 描述
MiCake.Core Nuget MiCake 核心程序集
MiCake.DDD.Domain Nuget MiCake 对DDD领域层的实现程序集
MiCake.Core.Util Nuget MiCake 提供的工具类程序集
MiCake.EntityFrameworkCore Nuget MiCake 对EFCore的支持程序集
MiCake.AspNetCore Nuget MiCake 对AspNetCore的支持程序集
MiCake.AspNetCore.Start Nuget MiCake 搭建起步程序所用的程序集

更多:请跳转至NuGet官网,进行查阅。

🍠 贡献与帮助

PRs Welcome

如果您有什么好的想法和观点,欢迎通过 Pull Request 进行贡献,或通过 提交 issues 来反馈您在使用过程中所发现的BUG。( 期待得到您的反馈~ 🌻🌻)

🍑 联系

博客园

如果您喜欢关于 .NET 方面的内容,或者对领域驱动很感兴趣,欢迎您关注我的博客:句幽的博客。您可以通过博客园内的站内短消息来与我沟通有关编程方面的问题。

QQ:344481481

如果您愿意与我沟通一些其它方面(非编程方向)的事情,欢迎添加QQ好友。🌻🌻

🍄 最后

备战 .NET 5冲鸭!! 🐣

About

🍰一款基于.Net Core平台的“超轻柔“领域驱动设计(DDD)组件

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.9%
  • Other 0.1%