SocanCode7之模板编写

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

posted on 2012-09-09 20:48  廖勇军  阅读(626)  评论(2编辑  收藏  举报

导航