Smith Builder ERP代码生成器(开源,提供源码下载)

avatar 2020年4月26日17:25:13 评论 184

ERP代码生成器

这个代码生成器的作用是弥补Code Smith在批量表生成方面的不足。

代码生成器运行效果

clip_image002

基本的使用方法是,选择数据库,左边的树会列出数据库中的所有表,在参数区域,Template会列出当前目录下的CodeSmith模板,选择一个模板,Parameter会列出选中的模板的参数信息,选择生成的代码的存放路径为Target Folder

解决方案视图

clip_image003

下载源代码到本地后,请先添加程序集引用,包括Code Smith和SMO

clip_image004

SMO是操作SQL Server元数据的一套非常有效率的API,以用于获取SQL Server表信息

程序代码只有2个窗体,主窗体和连接数据库的窗体,在启动主程序后,自动会打开数据库连接窗体

clip_image005

之后,会在主窗体中显示打开的数据库,及它的所有表。

点击树节点前的CheckBox,会将该表添加到要生成模板代码的表中,中间一列是文本框,可以编辑。

Template会列出当前目录中所有cst结尾的文件,这里没有验证该文件是否是CodeSmith模板文件

lstTemplate.Items.Clear();

string[] files=Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.cst");

lstTemplate.Items.AddRange(files);

在参数填写区域,请用=将参数名和参数值配对填写

clip_image006

对于Target Folder,窗体启动时会给当前路径默认值

txtTargetFolder.Text = AppDomain.CurrentDomain.BaseDirectory;

真正实现调用Code Smith模板,生成代码的方法

CodeTemplateCompiler compiler = new CodeTemplateCompiler(templateFile);

compiler.Compile();

if (compiler.Errors.Count == 0){

CodeTemplate template = compiler.CreateInstance();

DatabaseSchema database = new DatabaseSchema(new SqlSchemaProvider(), connectionString);

TableSchema tableSchema = database.Tables[tableName];

template.Render(writer);

}

 

这就是这个代码生成器的全部了,关键的内容还是在Code Smith模板的编写

这里还有一个小问题,请看图

clip_image007

Table Node和它的CheckBox之前的距离太小,有些不美观,一直找不到是如何设置参数,能让CheckBox与Node之间的距离增大一点,以保持美观。

 

请到http://epn.codeplex.com/获取最新的代码和文档。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: