模板定义
CodeBuilder 的模板是完全开放的,你可以添加新模板、修改现有模板。
一、定义新模板
- 基本信息
在【模板】选项卡工具栏上单击【新增模板】按钮,打开【模板编辑】窗口,如下图所示:
标识是唯一的,后续不能再修改。
- 组和部件
在【部件列表】中,可以右键添加顶级组,或添加子级组,组起到目录的作用,如下图所示:
部件则是生成代码的单元,对应到模板文件。在组下添加一个部件,如下图所示:
输出文件一般按循环规则来约定路径,比如是 Tables
循环,则可以使用 {ClassName}
、{Name}
来命名输出文件。一般输出文件都是以表为输出单元的,但也有固定输出的,比如项目文件、解决方案文件等等。
2.9.3
版本支持拖拽组或部件以调整它们的层级及前后顺序,如下图所示:
- 扩展
在【扩展】选项卡中,在 common、profile 和 schema 分组下,单击工具栏上的【添加】或【从文件添加】按钮,添加类文件,如果你要使用现有的 base.cs
或 base.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> | 变量扩展文件列表 |