15
2013
05

SocanCode自定义模板

本软件使用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类型, 如要修改字段对应生成的字段类型, 可以修改此文件.

« 上一篇下一篇 »

相关文章:

SocanCode7.5.2.0发布   (2014-8-6 10:1:32)

SocanCode7.5.1发布   (2014-6-28 16:39:56)

SocanCode介绍及下载(已全部开源)  (2013-5-17 19:55:2)

SocanCode常见问题  (2013-5-15 0:9:10)

SocanCode版本更新记录  (2013-5-14 21:48:25)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。