使用这些.NET代码生成器,开发效率飙升
Posted .NET100
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用这些.NET代码生成器,开发效率飙升相关的知识,希望对你有一定的参考价值。
在.NET开发过程中,可以使用一些辅助的代码生成器来提高开发效率,之前在.NET FW时代有国产的“动软代码生成器”,现在早已不维护了。下面介绍几种.NET码生成器,供大家参考使用。最后一个代码生产器绝对优秀,推荐使用。
T4 Text Template Generator:
简介:T4是.NET框架提供的一种代码生成引擎。它使用类似于ASP.NET Web套件的语法来生成各种代码。T4提供了强大的元数据信息和代码逻辑控制语句,可以帮助您更灵活和高效地生成代码。推荐使用。
是否收费:该工具免费
是否支持.NET Core:支持。
地址:
marketplace.visualstudio.com/items?itemName=OlegSych.T4Editor。
Razor Generator
简介: Razor Generator是一种.MVC项目的代码生成器。它使用Razor语法来生成各种代码,包括控制器、视图和部分视图。Razor Generator为开发人员提供了更快的开发速度和更高效的工作流程。
是否收费:该工具免费
是否支持.NET Core:支持。
地址:
nuget.org/packages/RazorGenerator.MsBuild/。
Entity Framework Power Tools
简介: Entity Framework Power Tools是一种用于生成代码的Visual Studio扩展程序。它可以根据您的模型类生成数据库上下文、实体类、存储过程和查询类等代码。Entity Framework Power Tools可以帮助您节省大量时间和工作量,同时提高代码质量和一致性。在EF项目推荐使用。
是否收费:该工具免费
是否支持.NET Core:支持。
地址:
marketplace.visualstudio.com/items?itemName=ErikEJ.EntityFramework6PowerToolsCommunityEdition
MyGeneration
简介:MyGeneration是一个开源的代码生成器,可以生成多种类型的代码,包括类和存储过程等。它提供多个内置代码模板,支持多种数据源,可以自定义代码生成器。
是否收费:免费。
是否支持.NET Core:支持。
地址:sourceforge.net/projects/mygeneration
XSharp
简介:XSharp是一个基于.NET平台的编程语言,支持多种数据源,包括SQL Server,Oracle,MySQL等。用户可以自定义模板来生成代码。
是否收费:商业软件,有试用版。
是否支持.NET Core:支持。
地址:xsharp.info
Devart Entity Developer
简介:Devart Entity Developer是一个ORM(对象关系映射)设计工具,可以快速生成代码。用户可以使用Visual Studio中的Entity Framework Designer来创建数据结构,使用Entity Developer来生成代码。
是否收费:商业软件,提供试用版。
是否支持.NET Core:支持。
地址:devart.com/entitydeveloper
CodeRocket
简介:CodeRocket是一个Visual Studio插件,可以自动生成代码和文档。支持多种编程语言和框架,包括C#和Java等。支持使用模板自定义代码和文档。
是否收费:商业软件,有免费试用版。
是否支持.NET Core:不支持。
地址:softwareredefined.com/coderocket
Smart Code Generator
简介:Smart Code Generator是一个Visual Studio插件,可以让用户设计自己的代码生成器,并生成代码。支持多个数据源,用户可以使用模板自定义代码。提供多个实用的代码模板。
是否收费:商业软件,有试用版。
是否支持.NET Core:支持。
地址:smartcodegenerator.com
CodeSmith Generator
简介:CodeSmith Generator是一个定制代码生成器,提供多个内置代码模板以及可以自定义的代码生成器。支持多个数据源,包括SQL Server,Oracle等。用户可以自己定义模板进行代码的生成。
是否收费:商业软件,有30天的免费试用期。
是否支持.NET Core:支持。
地址:codesmithtools.com/download
Iron Speed Designer
简介:Iron Speed Designer可以将数据库表转换为功能完善的Web应用程序。该工具提供了多个内置的模板以及用户可以自定义的模板。该工具的界面友好,易于使用。
是否收费:商业软件,需要购买许可证。
是否支持.NET Core:不支持。
地址:ironspeed.com
ChatGPT
简介:ChatGPT是OpenAI基于GPT(Generative Pretrained Transformer)模型架构,通过大规模的无监督学习训练而来的自然语言处理模型。它具备自然语言理解、自然语言生成、对话管理等功能,可以模拟自然语言的沟通交流,可应用于机器人客服、智能问答、智能助手、智能翻译等领域。它也支持生成代码,你只需要把你生成代码的需求告诉它,片刻之间就会给你生产示例代码。支持多种语言。
是否收费:API接口收费,网页端免费。
地址:chat.openai.com
Copilot
简介:GitHub Copilot是由GitHub和OpenAI合作开发的代码助手工具,它基于深度学习和自然语言处理技术,可以为程序员提供代码补全、代码提示和代码自动生成等功能。Copilot的模型是通过对数百万行开源代码进行训练得到的,它可以自动理解上下文和语境,生成高质量的代码片段,大大提高了编程的效率。支持多种语言。在经济允许条件下推荐使用。
是否收费:商业收费,可以免费试用。
地址:Copilot.GitHub.com
结语
以上代码生成器适用于不同的情况和需求。开发人员应该根据项目规模和复杂度、技能水平和预算等因素选择合适的代码生成器。并根据各个代码生成器的使用说明选择合适自己项目的生成器。希望本文对你有所收获,对于代码生成器你觉得对提升代码效率有没有帮助,欢迎留言讨论。
来源公众号:DotNet开发跳槽
推荐使用mybatis-plus逆向生成crud代码,让你开发效率提升50%
文章目录
1.在自己的某个服务的test目录下创建CodeGenerator类
需要判断自己在那个服务下,CodeGenerator类中需要使用该路径。
2.导入MP-Generator、模板依赖
3.CodeGenerator代码
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.apache.commons.lang.StringUtils;
import java.util.*;
/**
* Created by zsh on 2022/4/23
* 逆向工程
* @author zsh
*/
public class CodeGenerator
/**
* 读取控制台内容
*/
public static String scanner(String tip)
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext())
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt))
return ipt;
throw new MybatisPlusException("请输入正确的" + tip + "!");
public static void main(String[] args)
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/mi-resource/src/main/java");
//作者
gc.setAuthor("zsh");
//打开输出目录
gc.setOpen(false);
//xml开启 BaseResultMap
gc.setBaseResultMap(true);
//xml 开启BaseColumnList
gc.setBaseColumnList(true);
//日期格式,采用Date
gc.setDateType(DateType.ONLY_DATE);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://xxxxxxx:3306/you_mi?serverTimezone=UTC&allowPublicKeyRetrieval=true");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("xxxxxx");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.zsh.resource")
.setEntity("model")
.setMapper("mapper")
.setService("service")
.setServiceImpl("service.impl")
.setController("controller");
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig()
@Override
public void initMap()
// to do nothing
Map<String,Object> map = new HashMap<>();
map.put("v","1.0");
this.setMap(map);
;
// 如果模板引擎是 freemarker
String templatePath = "/templates/mapper.xml.ftl";
// 如果模板引擎是 velocity
//String templatePath = "/templates/mapper.xml.vm";
// 自定义输出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定义配置会被优先输出
focList.add(new FileOutConfig(templatePath)
@Override
public String outputFile(TableInfo tableInfo)
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/mi-resource/src/main/resources/mapping/" +
tableInfo.getEntityName() + "Mapper"
+ StringPool.DOT_XML;
);
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig()
.setEntity("templates/entity.java")
.setMapper("templates/mapper.java")
.setService("templates/service.java")
.setServiceImpl("templates/serviceImpl.java")
.setController("templates/controller.java");
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
//数据库表映射到实体的命名策略
strategy.setNaming(NamingStrategy.underline_to_camel);
//数据库表字段映射到实体的命名策略
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//lombok模型
strategy.setEntityLombokModel(true);
//生成 @RestController 控制器
// strategy.setRestControllerStyle(true);
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
//表前缀
strategy.setTablePrefix("res_");
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
4.注意点
(1)如下表示enitty、controller、service、mapper的生成路径;projectPath表示项目名;这里的mi-resource表示父工程下的某个子模块,如果你的项目只有一个模块,去掉即可。
gc.setOutputDir(projectPath + "/mi-resource/src/main/java");
(2)如下是xml文件的生成目录,projectPath表示项目名;这里的mi-resource表示父工程下的某个子模块,如果你的项目只有一个模块,去掉即可。
focList.add(new FileOutConfig(templatePath)
@Override
public String outputFile(TableInfo tableInfo)
// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
return projectPath + "/mi-resource/src/main/resources/mapping/" +
tableInfo.getEntityName() + "Mapper"
+ StringPool.DOT_XML;
);
5.启动
成
功
!
成功!
成功!
以上是关于使用这些.NET代码生成器,开发效率飙升的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA中提高代码开发效率的10个快捷操作