模板定义


  CodeBuilder 的模板是完全开放的,你可以添加新模板、修改现有模板。


一、定义新模板

  • 基本信息

  在【模板】选项卡工具栏上单击【新增模板】按钮,打开【模板编辑】窗口,如下图所示:

  标识是唯一的,后续不能再修改。

  • 组和部件

  在【部件列表】中,可以右键添加顶级组,或添加子级组,组起到目录的作用,如下图所示:

  部件则是生成代码的单元,对应到模板文件。在组下添加一个部件,如下图所示:

  输出文件一般按循环规则来约定路径,比如是 Tables 循环,则可以使用 {ClassName}{Name}来命名输出文件。一般输出文件都是以表为输出单元的,但也有固定输出的,比如项目文件、解决方案文件等等。

  2.9.3 版本支持拖拽组或部件以调整它们的层级及前后顺序,如下图所示:


  • 扩展

  在【扩展】选项卡中,在 common、profile 和 schema 分组下,单击工具栏上的【添加】或【从文件添加】按钮,添加类文件,如果你要使用现有的 base.csbase.vb 文件,可勾选上选项中的【使用基础类】,如下图所示:

  • 资源

  资源是一些静态文件,比如 css、js、jpeg 等等,可由外部直接拖入到列表中。新建模板时添加不了资源,只有在修改模板时才可以使用维护资源。


  单击【确定】按钮后,模板添加完成。从【模板】主菜单中选择新添加的模板,可在【模板】窗口中单击文件进行修改。


二、复制模板

  在【模板】选项卡工具栏上单击【复制模板】按钮,打开【复制副本】对话框,输入副本信息后,可将当前模板克隆成一个新的模板。如下图所示:



三、修改模板定义文件

  如果觉得以上步骤比较繁琐,你可以在【模板】窗口工具栏上的【编辑模板定义】按钮,直接打开模板定义文件,此文件为 Json 格式,熟悉此结构后可以直接修改定义文件,如下所示:

{
    "Name": "test",
    "Author": null,
    "Version": 0,
    "Description": null,
    "Language": "CSharp",
    "Partitions": [],
    "Groups": [
        {
            "Name": "DAL",
            "Color": null,
            "Groups": [],
            "Partitions": [
                {
                    "Name": "DAL",
                    "FileName": "dal.tt",
                    "Output": "{ClassName}DAL.cs",
                    "Loop": "Tables",
                    "Syntax": "C#",
                    "Color": null
                }
            ]
        },
        {
            "Name": "BLL",
            "Color": null,
            "Groups": [],
            "Partitions": [
                {
                    "Name": "BLL",
                    "FileName": "bll.tt",
                    "Output": "{ClassName}BLL.cs",
                    "Loop": "Tables",
                    "Syntax": "C#",
                    "Color": null
                }
            ]
        },
        {
            "Name": "Models",
            "Color": null,
            "Groups": [],
            "Partitions": [
                {
                    "Name": "Entity",
                    "FileName": "entity.tt",
                    "Output": "Models\{ClassName}.cs",
                    "Loop": "Tables",
                    "Syntax": "C#",
                    "Color": null
                }
            ]
        }
    ],
    "Extension": {
        "UseBase": true,
        "Common": [],
        "Schema": [],
        "Profile": ["11.cs"]
    },
    "Category": null
}

  可参考附中模板定义的类结构。


  模板定义 TemplateDefinition 的元素:

名称 类型 备注
Id string 模板标识
TId string 模板唯一标识
Name string 模板名称
ConfigFileName string 配置文件名称
TemplateDirectory string 模板所在目录
Author string 作者
Version decimal 版本
Description string 模板备注
Language string 语言
Groups List<GroupDefinition> 分组列表
Partitions List<PartitionDefinition> 部件列表
Resources List<string> 资源列表
Extension TemplateExtension 模板扩展
Category string 模板分组

  组定义 GroupDefinition 的元素:

名称 类型 备注
Name string 组名称
Color string 在模板窗口中显示的颜色,使用 R,G,B 值,如 0,255,255
Groups List<GroupDefinition> 分组列表
Partitions List<PartitionDefinition> 部件列表

  部件定义 PartitionDefinition 的元素:

名称 类型 备注
Name string 部件名称
FileName string 模板文件名称
FilePath string 模板文件路径
Output string 输出定义
Loop PartitionLoop 循环的类别(None:不循环,Tables:表,References:关系)
Syntax string 语法
Color string 在模板窗口中显示的,使用 R,G,B 值,如 0,255,255
Content string 模板内容

  模板扩展 TemplateExtension 的元素:

名称 类型 备注
UseBase boolean 是否使用基础的扩展文件
Common List<string> 公共扩展文件列表
Schema List<string> 架构扩展文件列表
Profile List<string> 变量扩展文件列表