Smith Builder ERP代码生成器(开源,提供源码下载)
ERP代码生成器
这个代码生成器的作用是弥补Code Smith在批量表生成方面的不足。
代码生成器运行效果
基本的使用方法是,选择数据库,左边的树会列出数据库中的所有表,在参数区域,Template会列出当前目录下的CodeSmith模板,选择一个模板,Parameter会列出选中的模板的参数信息,选择生成的代码的存放路径为Target Folder
解决方案视图
下载源代码到本地后,请先添加程序集引用,包括Code Smith和SMO
SMO是操作SQL Server元数据的一套非常有效率的API,以用于获取SQL Server表信息
程序代码只有2个窗体,主窗体和连接数据库的窗体,在启动主程序后,自动会打开数据库连接窗体
之后,会在主窗体中显示打开的数据库,及它的所有表。
点击树节点前的CheckBox,会将该表添加到要生成模板代码的表中,中间一列是文本框,可以编辑。
Template会列出当前目录中所有cst结尾的文件,这里没有验证该文件是否是CodeSmith模板文件
lstTemplate.Items.Clear();
string[] files=Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.cst");
lstTemplate.Items.AddRange(files);
在参数填写区域,请用=将参数名和参数值配对填写
对于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模板的编写
这里还有一个小问题,请看图
Table Node和它的CheckBox之前的距离太小,有些不美观,一直找不到是如何设置参数,能让CheckBox与Node之间的距离增大一点,以保持美观。
请到http://epn.codeplex.com/获取最新的代码和文档。