这是一个根据Domain项目中定义的实体对象(Entity)生成符合Clean Architecture原则的Application项目所需要的功能代码,包括常用的Commands,Queries,Vaildator,EventHandle,等等一切可以模板化的代码,是不是非常酷。目前这个项目支持我前段时间发布的CleanArchitecture For Razor Page,适用于visual studio.net 2015以上的所有版本。当然你也完全可以通过修改代码来实现适配自己的项目,也欢迎更多优秀的程序员一起参与该项目的开发

介绍

Technologies

功能



按实体名称生成符合CQRS和DDD模式的所有代码:

  • Events

    • $"Events/{name}CreatedEvent.cs",
    • $"Events/{name}DeletedEvent.cs",
    • $"Events/{name}UpdatedEvent.cs",
  • Commands
    • $"{nameofPlural}/Commands/AddEdit/AddEdit{name}Command.cs",
    • $"{nameofPlural}/Commands/AddEdit/AddEdit{name}CommandValidator.cs",
    • $"{nameofPlural}/Commands/Create/Create{name}Command.cs",
    • $"{nameofPlural}/Commands/Create/Create{name}CommandValidator.cs",
    • $"{nameofPlural}/Commands/Delete/Delete{name}Command.cs",
    • $"{nameofPlural}/Commands/Delete/Delete{name}CommandValidator.cs",
    • $"{nameofPlural}/Commands/Update/Update{name}Command.cs",
    • $"{nameofPlural}/Commands/Update/Update{name}CommandValidator.cs",
    • $"{nameofPlural}/Commands/Import/Import{name}Command.cs",
    • $"{nameofPlural}/Commands/Import/Import{name}CommandValidator.cs",
  • DTOs
    • $"{nameofPlural}/DTOs/{name}Dto.cs",
  • Queries
    • $"{nameofPlural}/Queries/Export/Export{nameofPlural}Query.cs",
    • $"{nameofPlural}/Queries/GetAll/GetAll{nameofPlural}Query.cs",
    • $"{nameofPlural}/Queries/Pagination/{nameofPlural}PaginationQuery.cs",
  • EventHandlers
    • $"{nameofPlural}/EventHandlers/{name}CreatedEventHandler.cs",
    • $"{nameofPlural}/EventHandlers/{name}UpdatedEventHandler.cs",
    • $"{nameofPlural}/EventHandlers/{name}DeletedEventHandler.cs",

sample: AddEditProductCommand.cs

namespace CleanArchitecture.Razor.Application.Features.Products.Commands.AddEdit
{
public class AddEditProductCommand: ProductDto,IRequest<Result>, IMapFrom<Product>
{ } public class AddEditProductCommandHandler : IRequestHandler<AddEditProductCommand, Result>
{
private readonly IApplicationDbContext _context;
private readonly IMapper _mapper;
private readonly IStringLocalizer<AddEditProductCommandHandler> _localizer;
public AddEditProductCommandHandler(
IApplicationDbContext context,
IStringLocalizer<AddEditProductCommandHandler> localizer,
IMapper mapper
)
{
_context = context;
_localizer = localizer;
_mapper = mapper;
}
public async Task<Result> Handle(AddEditProductCommand request, CancellationToken cancellationToken)
{
//TODO:Implementing AddEditProductCommandHandler method
throw new System.NotImplementedException();
}
}
}

已上代码的具体功能我就不在介绍了,代码非常简洁工整。

同时还会生成一份TODO-list方便修改和完善

如何二次开发适配自己项目

选择读取Domain项目中的实体类名

项目代码模板定义

生成的代码

最后

Keep Coding, Enjoy Coding!

如果你喜欢这个项目请上Github点个赞。也欢迎你一起加入开发。

neozhu/CleanArchitectureCodeGenerator

CleanArchitecture Application代码生成插件-让程序员告别CURD Ctrl+C Ctrl+V的更多相关文章

  1. vscode安装rainbow-fart(彩虹屁)插件,程序员只能自我鼓励了!!!

    2020-7-10更新 Rainbow Fart 插件现以发布到 VSCode 商店,安装过 VSIX 版本的用户请卸载之前的版本,从商店安装. 从 VSCode 扩展商店 下载并安装.(更新vsco ...

  2. 程序员为什么要写if else,为什么要和别人不一样

    程序员为什么要写if else,为什么要和别人不一样 前言 无聊,睡不着!本文只是随便写写而已!感叹一下程序员的生活! 刚看到一个八级程序员的分级,所以就写了这个随笔,分级如下:        第八级 ...

  3. ASP.NET的几个试题(《C#与.NET程序员面试宝典》)

    更多参考:博客园笔记 :ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应用程序和 ...

  4. 程序员必备,C#各类项目、开源项目插件资料收藏

    一.AOP框架     Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面 ...

  5. 2014年50个程序员最适用的免费JQuery插件

    有用的jQuery库是设计师和开发者之间一个非常熟悉的短语.这是现在互联网中最流行的JavaScript函数库之一.每个设计师和开发人员都应该知道它的重要性,而且熟悉它的功能和特点. jQuery几乎 ...

  6. Java程序员25个必备的Eclipse插件

    原文:http://www.fromdev.com/2012/01/25-best-free-eclipse-plug-ins-for-java.html "工欲善其事, 必先利器" ...

  7. 珍藏版Chrome插件送给你们,不仅是程序员必备

    大家好,消失了几天我又满血复活归来了,最近这几天太忙了一直在加班工作,这不昨天又干到凌晨一点,今天早上七点就起来了,到现在还都没有休息,现在只剩半血了,不对应该说现在只能爬着走了,但是一想到几天没有更 ...

  8. linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的

    发现一个比ack更快更好用的:  https://github.com/ggreer/the_silver_searcher   , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...

  9. 作为一个程序员,分享一下我自己常用的几款非常方便的chrome插件

    作为一名资深码农,结合身边一群IT民工的真实体验,小编有那么一点权威给各位推荐几款程序员必备.常用的chrome扩展插件. 1.Click&Clean Click&Clean插件可以监 ...

随机推荐

  1. 其他:Git生成SSH、Git生成本地库、下载远程库代码 命令

    1.安装Git Bash https://git-scm.com/downloads 2.鼠标右键git bash here 3.执行以下命令: ①   cd ~/.ssh/    [如果没有对应的文 ...

  2. Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

    解决办法: 去掉ps -aux 中的"-",改成ps aux 就可以了

  3. Spring WebFlux快速上手——响应式Spring的道法术器

    https://blog.csdn.net/get_set/article/details/79480233

  4. QT. 学习之路 一

    初识QT 一:   hello-world: #include "mainwindow.h" #include <QApplication> #include < ...

  5. subList方法拆分集合问题

    subList方法拆分集合问题 分享一个有意思的错误,先看代码 public static void main(String[] args) throws IllegalAccessException ...

  6. 【LeetCode】54. 螺旋矩阵

    54. 螺旋矩阵 知识点:数组: 题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素. 示例 输入:matrix = [[1,2,3],[4,5, ...

  7. HTML5-CSS(三)

    一.CSS  盒模型 1.元素尺寸:CSS 盒模型中最基础的就是设置一个元素的尺寸大小.有三组样式来配置一个元素的尺寸大小,样式表如下 //设置元素尺寸 div { width: 200px;heig ...

  8. MapReduce学习总结之Combiner、Partitioner、Jobhistory

    一.Combiner 在MapReduce编程模型中,在Mapper和Reducer之间有一个非常重要的组件,主要用于解决MR性能瓶颈问题 combiner其实属于优化方案,由于带宽限制,应该尽量ma ...

  9. SSM中如何上传图片

    1.文件配置 2.jsp页面 文件的name值不能跟数据库列名一致 3.控制层收集数据转发到逻辑层 4.逻辑层处理把用户信息存到数据库 5.注册成功后跳到jsp页面进行展示

  10. python -- 负数平方根-虚数的使用

    负数的平方根是虚数. 不能使用sqrt,因为它只能处理浮点数,而虚数是完全不同的--这也是由另外一个叫做cmath(即 complex math, 复数)的模块来实现这些功能的原因. >> ...