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

介绍
- GitHub: neozhu/CleanArchitectureCodeGenerator
 - VS Gallery: CleanArchitecture CodeGenerator
 - 适配项目 一个遵循CleanArchitecture原则的Asp.net core轻量级开源项目
 
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的更多相关文章
- vscode安装rainbow-fart(彩虹屁)插件,程序员只能自我鼓励了!!!
		
2020-7-10更新 Rainbow Fart 插件现以发布到 VSCode 商店,安装过 VSIX 版本的用户请卸载之前的版本,从商店安装. 从 VSCode 扩展商店 下载并安装.(更新vsco ...
 - 程序员为什么要写if else,为什么要和别人不一样
		
程序员为什么要写if else,为什么要和别人不一样 前言 无聊,睡不着!本文只是随便写写而已!感叹一下程序员的生活! 刚看到一个八级程序员的分级,所以就写了这个随笔,分级如下: 第八级 ...
 - ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
		
更多参考:博客园笔记 :ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应用程序和 ...
 - 程序员必备,C#各类项目、开源项目插件资料收藏
		
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面 ...
 - 2014年50个程序员最适用的免费JQuery插件
		
有用的jQuery库是设计师和开发者之间一个非常熟悉的短语.这是现在互联网中最流行的JavaScript函数库之一.每个设计师和开发人员都应该知道它的重要性,而且熟悉它的功能和特点. jQuery几乎 ...
 - Java程序员25个必备的Eclipse插件
		
原文:http://www.fromdev.com/2012/01/25-best-free-eclipse-plug-ins-for-java.html "工欲善其事, 必先利器" ...
 - 珍藏版Chrome插件送给你们,不仅是程序员必备
		
大家好,消失了几天我又满血复活归来了,最近这几天太忙了一直在加班工作,这不昨天又干到凌晨一点,今天早上七点就起来了,到现在还都没有休息,现在只剩半血了,不对应该说现在只能爬着走了,但是一想到几天没有更 ...
 - linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的
		
发现一个比ack更快更好用的: https://github.com/ggreer/the_silver_searcher , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...
 - 作为一个程序员,分享一下我自己常用的几款非常方便的chrome插件
		
作为一名资深码农,结合身边一群IT民工的真实体验,小编有那么一点权威给各位推荐几款程序员必备.常用的chrome扩展插件. 1.Click&Clean Click&Clean插件可以监 ...
 
随机推荐
- leetcode 1122
			
思路分析: 主要思想:计数排序 先遍历arr1,然后计数,再遍历arr2时同时又排完序了,再继续把arr2不存在的数字,再遍历加到数组后面,也同时排完序了.方便快捷
 - WPF教程一:创建Hello world来理解XAML的内容及编译
			
在实际的WPF开发中遇到很多再用Winform写法来写WPF的开发人员,很多时候项目进度延期.出现非必要的BUG等等.大多是因为开发人员虽然是再写WPF. 但是没有好好的学过WPF,就导致无法发挥出W ...
 - python  字符串 增、删、改、查基本操作
			
private static String TAG = "MainActivity"; private String str = " a,bB,1cCcc,2dDd d2 ...
 - Java | Random 和 Math 的概述及使用
			
Random Random类是java.util的包里面提供的我们常用的API,方便我们操作的,还有非常多像Random一样的类. Random的作用 生成一个随机数字,可以指定范围,也可以真的随机. ...
 - 第一个用户进程 - Android 的 Init 进程
			
本文尝试对着 <深入理解 Android 5.0 系统>来对 android 9.0 的启动代码进行分析,但是分析过程中发现自己缺乏操作系统方面的知识,以致于只能做一些简单分析.最近也买了 ...
 - SuperEdge 易学易用系列-SuperEdge 简介
			
关于 SuperEdge SuperEdge 是由腾讯.Intel.VMware.虎牙直播.寒武纪.首都在线和美团等多家公司共同发起的边缘容器管理系统,它基于原生 Kubernetes.针对边缘计算和 ...
 - python adb 关闭拼多多
			
def gbpdd(sjh): aaka="adb -s {0} shell am force-stop com.xunmeng.pinduoduo".format(sjh) aa ...
 - IO编程之IO流
			
Java的IO流是实现输入.输出的基础,它可以方便的实现数据的输入输出操作.在Java中把不同的输入输出源(键盘.文件.网络连接)抽象表述为流(stream).通过流可以使java程序使用相同的方式访 ...
 - IO流之节点流(字节流)
			
节点流可以分为:字节节点流和字符节点流 数据源直接到程序的成为节点流(低级流) 字节流 输入流----InputStream InputStream 是输入流的抽象父类,若创建对象,需new它的子类 ...
 - 开源百宝箱《HelloGitHub》第 64 期
			
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. HelloGitHub 有实战.教程.黑科技.开源书籍.企业级开源项目,涵盖多种编程 ...