这是一个根据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. 部署JAX-WS Web服务作为战争中的Apache Tomcat(Deploying JAX-WS webservice as War in Apache Tomcat)

    问 题   I have developed a webservice using JAXWS and able to run it from the eclipse on Tomcat 7 with ...

  2. [小工具] chrome上日语翻译工具

    rikaikun -> 日语 "理解君" 下载地址: https://chrome.google.com/webstore/detail/rikaikun/jipdnfibh ...

  3. Dart学习记录(一)——对象

    1. 静态成员.方法 1.1 static 声明 1.2 静态.非静态方法可访问静态成员.调用方法:静态方法不可访问静态成员.调用方法: 1.3 静态成员.方法,属于类的 ,不用实例化对象就可使用,不 ...

  4. 单点登录(SSO)实现原理(转)

    简介 单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些知名的大型网站,如:淘 ...

  5. 麒麟操作系统上安装docker并加载镜像

    最近需要在政务云系统中部署深度学习环境,其使用麒麟操作系统并与互联网相互隔离,无法使用常规的指令行方式进行安装.参考docker官方文档并经过多次尝试,使用离线安装的方式完成了环境的部署.这里做一下笔 ...

  6. lxml的使用(节点与xpath爬取数据)

    lxml安装 lxml是python下功能很丰富的XML和HTML解析库,性能非常的好,是对libxml3和libxlst的封装.在Windows下载这个库直接使用 pip install lxml ...

  7. 如何监控 Log4j2 异步日志遇到写入瓶颈

    如何监控 Log4j2 异步日志遇到写入瓶颈 在之前的一篇文章中(一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位),我们详细分析了一个经典的 Log4j2 异步日志阻塞问题的定位,主要原因还 ...

  8. jquery性能优化建议-上篇

    一.注意定义jQuery变量的时候添加var关键字这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:$loading = $('#loading'); / ...

  9. [Vue warn]: “TypeError: Cannot read property ‘slideTo‘ of undefined“

    问题: 使用Vue插件swiper,报如下bug: 解决: 报错原因: vue-awesome-swiper下载版本问题 解决: 如果写成下面这样报错: 则加上$ 反之,删除$ 问题解决

  10. 第五十三篇 -- MFC美化界面2

    IDC_STATIC 1. 设置字体样式 方法1:在OnInitDialog()函数中使用以下语句 CFont * f; f = new CFont; f->CreateFont(50, // ...