本软件使用javascript作为模板,软件将数据库和设置项分成组成json作为参数,调用模板入口main函数,返回值一个数组。
模板示例:
/**
* 函数入口
*/
function main(databaseJson, settingJson) {
var codes = new Array()
codes.push({ title: '错误', path: 'error.txt', code: '模板暂未完成。' });
return codes;
}
1. 传入参数格式
1.1. databaseJson
{
"ConnString": "Data Source=127.0.0.1,7788;User ID=sa;Password=;Initial Catalog=test;",
"Name": "test",
"Type": "Sql2000",
"Selects": [
{
"Name": "tbl_Item",
"IsView": false,
"Fields": [
{
"Pos": 1,
"Name": "ItemId",
"IsId": true,
"IsKey": false,
"Size": 4,
"Length": 10,
"AllowNull": false,
"DefaultValue": "",
"Descn": "ItemId",
"FieldType": "int"
},
{
"Pos": 2,
"Name": "TypeID",
"IsId": false,
"IsKey": false,
"Size": 4,
"Length": 10,
"AllowNull": false,
"DefaultValue": "",
"Descn": "TypeID",
"FieldType": "int"
},
{
"Pos": 3,
"Name": "RoleId",
"IsId": false,
"IsKey": false,
"Size": 4,
"Length": 10,
"AllowNull": false,
"DefaultValue": "",
"Descn": "RoleId",
"FieldType": "int"
},
{
"Pos": 4,
"Name": "CreateTime",
"IsId": false,
"IsKey": false,
"Size": 8,
"Length": 23,
"AllowNull": true,
"DefaultValue": "",
"Descn": "CreateTime",
"FieldType": "datetime"
}
]
}
]
}
1.2. settingJson
[
{
"Name": "CacheFrame",
"Description": "缓存结构",
"Value": "ObjectCache"
},
{
"Name": "BLFrame",
"Description": "业务层样式",
"Value": "BLL"
},
{
"Name": "CommandType",
"Description": "读写数据库方式",
"Value": "SQL"
},
{
"Name": "FilterDefaultableField",
"Description": "是否过滤带默认值的字段",
"Value": "false"
},
{
"Name": "DBHelperName",
"Description": "DBHelperName的名称",
"Value": "dbHelper"
},
{
"Name": "DALFrame",
"Description": "DAL项目名称",
"Value": "DAL"
},
{
"Name": "ModelStyle",
"Description": "实体层样式",
"Value": "CS3"
},
{
"Name": "SlnFrame",
"Description": "三层结构样式",
"Value": "Simple"
},
{
"Name": "NamespaceSuffix",
"Description": "命名空间后缀",
"Value": ""
},
{
"Name": "NamespacePrefix",
"Description": "命名空间前缀",
"Value": ""
},
{
"Name": "VSVersion",
"Description": "VisualStudio版本",
"Value": "2010"
}
]
2. 返回值
main函数通过传入databaseJson和settingJson返回一个数组,数组中的每个元素都是json,可以有2种形式:
1、拷贝文件(夹)
{
type: 'copy', //类型为拷贝
isfolder: true, //是否是文件夹拷贝
source: 'folder\\Model', //文件源路径,相对于模板路径地址
target: 'Model' //目标路径,相对于输出路径
}
2、输出代码
{
type: 'code', //类型为代码,此项可省略
title: 'Model-internal', //用于在生成代码时显示在标题上
path: 'folder\\test.cs', //输出代码时的文件路径
code: 'console.write(“hello,world”);' //要输出的代码
}
3. 注意事项
1. 模板的设置项使用xml格式
2. 生成代码将加载模板下所有的js文件
3. 生成代码时,调用main函数,main函数是入口函数
4. 传入参数可以从软件的“调拭”窗口中查看
5. 使用软件的“添加模板”功能,会自动生成4个文件,其中的Helper.js是辅助函数,内含对模板编写的实用函数; DbType.js是为field添加DbType属性的方法, 可以将各种数据库类型转化到对应于c#的DbType类型, 如要修改字段对应生成的字段类型, 可以修改此文件.