开发业务组件模型
建立业务模型是应用开发过程的第一步,可以开发的模型有实体模型、业务操作模型、服务模型和数据库模型。这些模型分别对应于解决方案中的实体项目、业务操作项目、服务项目和数据库项目。为了方便模型的复用,在UBF Studio还可以建立模式项目和特性项目。
UBF Studio中的项目有着相同的管理方式:
- 每个项目包含一个项目文件和一个同名的文件夹
- 文件夹下包含若干个组件文件,每个文件代表一个组件
- 组件中包含命名空间、模型以及模型图,组件的内部结构通过模型管理器显示和管理
- 模型和模型图通过图形化的编辑器打开并修改等。
模型项目词汇表
中文 | 英文 | 解释 |
---|---|---|
元模型 | Meta-Model | 描述系统模型的模型。对业务系统抽象并建模,产生系统模型,对系统模型抽象并建模,就产生元模型。 |
元数据 | Meta-Data | 描述元模型的数据 |
领域模型 | Domain Model | 是用来构建特定领域软件系统的知识模型,是合并了数据和行为的对象模型。 |
业务实体 | Business Entity | 领域模型中的业务数据对象,如:订单头,订单体,职员,客户等。 |
业务操作 | Business Process | 领域模型中的业务逻辑对象,用以描述对象行为,如订单增加,订单修改,订单删除等。 |
服务 | Service | 领域模型中对外公开操作的业务逻辑对象,是系统互连和流程配置的接口。 |
数据传输对象 | Transient Object | 普通类, 不参与持久化操作,主要用作BP的参数和返回类型。(不能在持久化对象中使用) |
属性类型 | Property Type | 不能单独持久化、没有ID的小对象,常用于货币、日期范围等的描述。说明:原名为值对象。 |
枚举类型 | EnumType | 枚举是一个被命名的整型常数的集合,如:销售类型,付款方式,运输方式等。 |
校验器 | Validator | 生成对属性等校验的框架代码,可作为公用。 |
模式 | Pattern | 可重用的,可自定义的领域模型模式。多个实体、属性类型、枚举及其关系的组合。 |
特性 | Feature | 被抽象出来并可在实体设计时被复用的代表特定方面(Aspect)特征的属性集。 |
应用字典 | Application Dictionary | 特定的属性规范,用于类属性的重用。 |
版型 | Stereotype | 是扩展业务实体描述的一种解决方法;主要用于表现一些不在模型上体现业务规则,主要用于扩展代码。 |
模型图 | Model Diagram | UBF文档图形化显示方式,可以直接在模型图中对UBF文档进行编辑。在UBF Studio中,有单个业务对象的模型图,如单个实体或者单个表的模型图;也有组合业务对象的模型图,如类图和数据库图。 |
类图 | Entity Diagram | 领域模型的图形描述,类图中可以包括多个类,并同时表明类间关系。 |
数据库图 | Database Diagram | 不描述真正的数据库,只是表和表关联的图形描述。 |
模型开发概述
新增功能
V 2.1 版本增加的新功能:
- 新增了字典应用和存为字典功能,
- 新增了关联关系的快速创建功能,
- 新增了浮动属性编辑器。
- 创建模式和特性项目:允许单独创建有关模式和特性的项目,然后在其他实体的设计过程中应用该模式和特性。
- 模型可视化设计时,在实体等的鼠标右键操作中增加的功能:缩放,全选,输出到图形文件。
主要流程
UBF模型设计器是一个可视化的工具便于使用者设计、建模和分析领域模型。通过Designer可以集中对业务模型的模型元素(模型、关系、特性、模式、版型等)进行可视化描述,并以图形的方式进行展示。
开发模型项目的流程如下图所示:
- 在建立解决方案以后,需要分别建立实体项目、操作项目和服务项目。
- 操作项目和服务项目的开发流程完全一样,现统一说明:
- 建立操作/服务组件,并在下面建立命名空间。需要分组管理时,也可选择首先在组件下面创建文件夹。
- 在命名空间下面建立操作/服务、数据传输对象,可以先建立类图以方便其它模型的创建及编辑。
- 根据建立的模型文件生成代码,建立VS.NET项目
- 在VS.NET开发环境中编写业务逻辑,然后编译、发布,生成运行期的业务逻辑组件。
- 另外,操作/服务项目的DSL文件也可发布到运行期元数据库中。目前主要供工作流组件使用。
- 实体项目的创建过程:
- 与操作服务项目类似,建立组件、文件夹(可选)和命名空间。
- 在命名空间下面建立实体、枚举、属性类型、校验器、数据传输对象等模型元素。可以首先建立类图以方便各模型的快速创建与可视化编辑,特别地,各模型间的关系只有通过类图才可创建与编辑。
- 实体项目的发布有三条线同时进行:
- 与操作/服务项目类似的,生成代码、修改代码,最后编译发布未运行期组件
- 实体项目的DSL文件直接发布到运行期元数据库中
- 由实体项目创建数据库项目
- 数据库项目是根据实体项目创建的。
- 可以由实体项目自动创建数据库项目,创建时将同时生成数据表和OR映射文件;也可以手工创建数据表,并手工建立数据表和实体对象之间的OR映射关系
- OR映射文件直接发布为运行期的OR映射文件
- 数据库项目中的表只是存在本地的描述文件,需要据此生成建库脚本,并针对指定的数据库服务器执行建库脚本,生成真正的数据表供运行期程序使用。
- 模型项目开发完成以后,就可以进行后续的其它项目的开发了。
各类模型项目外观标记
项目类型 | 图标 | 文件扩展名 |
实体项目 | .ubfmlproj | |
操作项目 | .ubfbpproj | |
服务项目 | .ubfserproj | |
数据库项目 | .ubfdbproj | |
特性项目 | .ubffeproj | |
模式项目 | .ubfpaproj |
通用操作
创建组件和命名空间
选中要编辑的项目,以新建文档的方式创建组件,参见§3.2.3.6.1 新建文档或文件夹。
选中要编辑的组件,同样以新建文档的方式新建命名空间。命名空间在模型管理器中显示为文件夹的方式。
特例说明:数据库项目下包括数据表和OR映射两种组件,二者均不需要建立命名空间。
创建具体模型
有两种操作方式可以创建具体模型:
- 选中命名空间,以新建文档的方式创建具体模型,参见参见§3.2.3.6.1 新建文档或文件夹。
- 先以新建文档的方式创建模型图,通过编辑模型图的方式快速创建其它模型。这是推荐的操作方式。
特例说明:
- 数据表组件下面没有命名空间,直接选中表组件,然后以新建文档的方式创建具体模型即可。
模型图是UBF Studio中编辑模型的主要方式,除了创建新模型以外,还可以加入已有模型到模型图中。
操作方法:在公共管理工具的模型管理器中,直接拖曳模型节点到模型图中即可。
使用模型图编辑模型文档
使用模型图编辑模型文档是可视化开发工具的重要特征之一,这也正体现了UBF Studio的强大功能。
新建一个模型图,在模型管理器中双击打开,模型图将出现在UBF Studio中间主体的文档编辑区域,同时在左侧窗格中也将出现相应文档的工具箱:
使用工具箱创建模型
模型工具箱提供了针对当前模型的特定工具,一般可通过拖曳的方式加入到模型图中。
各模型的工具箱有一个通用的控件,就是注释控件,拖动该控件到模型图,即可添加注释:
小技巧:在模型图的空白处双击鼠标,可快速创建当前模型图中最常用的模型:
- 实体类图:可快速创建实体,同时适用于实体项目、模式项目和特性项目中的实体类图
- 操作类图:可快速创建操作,适用于操作项目
- 服务类型:可快速创建服务,适用于服务项目
- 数据库图;可快速创建数据表,适用于数据库项目
模型的选择与编辑
- 模型的选择:
- 点击模型标题,选择单个模型
- 通过鼠标拖曳画矩形框的方式,同时选择多个模型
- 在模型图背景的上下文菜单中,选择“全选”,同时选择所有模型
- 快捷键:Ctrl+A键
- 模型的快速复制:选中要复制的模型,在上下文菜单中选择“复制”;右键单击模型图背景,在上下文菜单中选择“粘贴”
- 模型的删除:
- 选中模型,在右键菜单中选择“删除”,模型将从模型图中消失,但在当前组件中仍然存在,模型管理器中仍然可以看到
- 快捷键:Del键
- 选中模型,在右键菜单中选择“从元数据删除”,模型不仅从模型图中消失,在当前组件中也会被删除。这是一个危险的操作,从元数据中删除后,模型将无法恢复
- 快捷键:Shift+Del键
- 选中模型,在右键菜单中选择“删除”,模型将从模型图中消失,但在当前组件中仍然存在,模型管理器中仍然可以看到
描述属性的查看与编辑
不同于类属性只存在于类中,UBF Studio中的各级元素多数具有描述属性,公共管理工具中的属性页是专门为了查看、编辑描述属性而设置的。在开发模型项目时,还有其它方法可以查看和维护描述属性:
- 浮动属性编辑器
- 详细信息窗格
浮动属性编辑器:
双击模型元素,即可打开浮动属性编辑器:
浮动属性编辑器下部的无标题的空白文本框是备注项,开发人员可以用来录入伪代码等信息。
小技巧:如果觉得备注项文本框太小,可以双击该文本框,然后在放大的文本框中编辑。
详细信息窗格:
在打开一个模型后,在输出查看器所在窗格会新增一个页签,页签标题为“详细信息”,在详细信息中,也可以查看、维护部分描述属性:
根据模型种类的不同,详细信息页签中会分为多个子页签,分别描述模型各类子项的描述属性,如类属性、方法、版型、实现策略等。
在详细信息窗格中可以使用以下快捷操作方式:
- Arrow : 移动到上/下一行或者上/下一列。
- CTRL + Arrow : 移动到第一行/最后一行或者第一列/最后一列。
- CTRL + C、X、V : 在单元格中复制、剪切、粘贴。
- F4 :
- 对于可参照输入的描述属性,在处于带光标的输入状态时,可弹出相应的参照选择框,如数据类型选择框、校验器选择框等。
- 对于使用下拉列表输入的描述属性,在处于带光标的输入状态时,可打开下拉列表框
- Delete:删除一行。
- 在属性/方法/参数的最后一行的名称列中输入值则自动添加一个属性/方法/参数。
小技巧:对“服务可见”、“可空”、是否隐藏列等复选框输入的列,各行的类属性可以批量设置“全选”、“全部取消”,方法是选择顶部空白行的复选框。
模型元素共有的描述属性
模型元素有一些共有的描述属性,在此统一说明:
标签 | 含义 | 输入说明 |
名称 | 唯一性名称,在生成的源码中使用 | 以字母开头的英文 |
全名 | 全路径名称 | 系统自动生成,不可修改 |
显示名称 | 多语种显示名称,可更换语种 | 目前建议直接输入中文。需要其它语种时可直接在资源中维护。 |
描述 | 描述性解释 | 直接输入或参照资源输入 |
备注 | 用于输入备注文本信息,常用来输入伪代码 | 直接输入。在输入的文本较多时,可以双击窗口,打开更大的窗口进行编辑。 |
隐藏显示 | 当前类属性是否需要在模型图中隐藏显示,只用于类属性 | 复选框选择 |
模型图显示控制
右键点击模型图背景,通过上下文菜单可以控制模型图的显示:
- 缩放:可以选择模型图的多种显示比例
- 重新布局:可以自动排列显示模型图中的各模型,省却了人工调整各模型位置的繁琐
- 显示网格:切换是否显示模型背景的网格点阵
- 输出到图形文件:将当前模型图以图片格式保存到图形文件当中,支持多种常见的图形格式。
在显示实体模型的类属性时,也可选择是否分组显示各个类属性。操作方法是选中类的“属性”标题,点击鼠标右键,上下文菜单中将会出现“分组属性”的选项:
创建实体项目
新建一个实体项目后,系统会为该项目自动新建一个同名组件,为组件新建一个同名命名空间,为命名空间新建一个同名类图。同样地,用户新建一个实体组件后,系统也会自动创建一个同名的命名空间、一个同名的类图。
一般的,一个实体项目只包含一种组件——实体组件,实体组件下面有命名空间,各种模型及类图将直接从属于一个命名空间。
实体组件包含的模型有实体、枚举、属性类型、数据传输对象、校验器,各模型之间还可能会有各种关系。其中实体是核心的模型,其它模型都是为实体服务的:
- 枚举:在实体类属性的数据类型中可以选择枚举,表明数据只能在几个可用的枚举值之中选择。
- 属性类型:在实体类属性的数据类型中可以选择属性类型,表明这个类属性由几个数据项组合而成。
- 校验器:实体类属性的描述属性中专门有校验器一项,表明这个类属性的有效性校验方法。
- 数据传输对象:在实体等模型进行数据传输时使用。
- 关系:表明实体之间、实体与其它模型之间的各种关系。
编辑实体
实体由类属性和方法组成。
编辑实体的描述属性
实体本身的各描述属性项说明如下:
分组 | 标签 | 含义 | 输入说明 |
---|---|---|---|
基本 | 校验器 | 选择针对整个实体的,跨数据项校验器 | 参照选择 |
主实体 | 是否是业务对象的主实体 | 复选框选择 | |
扩展 | 查询属性 | 当前类属性是否具有业务含义,只有具有业务含义的类属性才能用于智能查询(SmartList)等功能中。 | 列表选择:True / False |
抽象类 | 是否是抽象类 | 复选框选择 | |
权限控制 | 是否权限控制 | 复选框选择 | |
OR映射 | 继承映射类型 | 将带继承关系的类映射为数据表时,所采取的映射类型 | 列表选择:
|
类型标志 | 仅在映射类型为Single Table时有效,用于区分表中的记录来自于哪个类 | 文本输入,默认取值为实体名称。 | |
缺省表名 | 由实体自动生成数据表时取的默认表名 | 文本输入,默认取值为实体名称。 | |
其它 | 索引 | 编辑当前实体的索引 | 弹出界面 |
说明:关于应用字典的详细使用说明,请参见§Error! Reference source not found.Error! Reference source not found.。
实体类属性编辑
新增类属性
类属性是实体的重要组成之一,可以通过如下方式之一新增类属性:
- 在类图中选中实体的“属性”标题,在鼠标右键菜单中选择“增加”。
- 在详细信息窗格的属性页签中,点击左侧工具栏的按钮
新增的类属性将以“Attribute、Attribute1、Attribute2……”依次命名,其显示名称将以“属性、属性1、属性2……”取值。
特别说明:当创建一个新的实体时,系统会自动创建以下属性:
- ID:唯一标识,不能修改
- CreatedOn:创建日期
- CreatedBy:创建人
- ModifiedOn:修改日期
- ModifiedBy:修改人
- SysVersion:事务版本
删除类属性
可通过如下方式之一删除类属性:
- 在类图中选中要删除的类属性,在右键菜单中选择“删除”
- 在详细信息窗格的属性页签中,选中要删除的类属性行,点击左侧工具栏的按钮。
特别说明:系统自动创建的类属性“ID”不能删除。
类属性的快速复制:
可通过如下方法将类属性从一个实体复制到另一个实体:
- 用鼠标直接拖曳过去
- 选中源实体的类属性,按“Ctrl+C”;再选中目标实体的类属性行,按“Ctrl+V”
解除类属性的资源绑定:
在输入类属性的显示名称时,系统一般会新建或者套用现有资源,此后资源将与类属性的显示名称联动变化。在有特殊需要时,用户可以去掉这种联动变化的绑定。在模型图中选中当前类属性,点击鼠标右键,在上下文菜单中选择“删除资源绑定”即可:
要想为类属性建立新的资源,同时修改类属性的名称和显示名称为新值即可。
类属性的描述属性项说明
分组 | 标签 | 含义 | 输入说明 |
---|---|---|---|
基本 | 分组名 | 用于对类属性的分组。 | 未输入分组名时将自动归为Misc组。 |
服务可见 | 在被BP调用时,是否公开为调用参数 | 复选框选择,缺省True | |
国际化 | 类属性的持久化数据是否需要各语种分别记录 | 复选框选择,缺省False | |
描述 | 属性的描述信息 |
| |
名称 | 属性的名称,默认的数据库列名 | 字母、数字和下划线的组合,首字母必须大写 | |
权限控制 | 是否接受权限系统的控制 | 复选框选择,缺省False | |
缺省值 | 用于建库的时候生成缺省值约束,空字符串使用两个双引号:”” | 对于不合法的输入,系统将自动忽略 | |
是否敏感日志字段 | 用于确定此属性是否需要记录日志 | 复选框选择,缺省False | |
是否是字典表字段 | 不知道意义 | 复选框选择,缺省False | |
数据类型 | 原生类型、实体、属性类型等 | 简单的数据类型不能是集合类型,不能选择对象类型、空类型、实体Key、实体。 | |
显示名称 | 用于前台显示的属性的显示名称,国际化字段 | 输入值作为默认语种(中文)的资源 | |
业务主键 | 是否是业务主键之一 | 复选框选择,缺省False | |
一旦使用不可修改 | 一旦使用不可修改,不确定具体的含义 | 复选框选择,缺省False | |
计算 | 计算列 | 是否计算列,在数据类型为数字类型时有效。 | 复选框选择 |
表达式 | 仅在类属性为计算列时有效,可打开表达式窗口编辑计算表达式 | 打开新窗口 | |
可扩展 | 属性是否可扩展,不确定具体的含义 | 复选框选择,缺省False | |
校验 | 长度 | 属性数据类型的长度 | 整数,根据数据类型不同,此属性自动转变可编辑属性 |
精度 | 属性数据类型的精度 | 整数,根据数据类型不同,此属性自动转变可编辑属性 | |
小数位 | 属性数据类型的小数位数 | 整数,根据数据类型不同,此属性自动转变可编辑属性 | |
只读 | 属性是否只读 | 复选框选择,根据数据类型不同,此属性自动转变可编辑属性 | |
可空 | 属性是否允许空值 | 复选框选择,根据数据类型不同,此属性自动转变可编辑属性 | |
最大值 <开发业务组件模型建立业务模型是应用开发过程的第一步,可以开发的模型有实体模型、业务操作模型、服务模型和数据库模型。这些模型分别对应于解决方案中的实... 点击下载文档 上一篇:实体开发框架下一篇:U9开发许可申请流程 本文2024-08-20 17:11:49发表“u9cloud知识”栏目。 您需要登录后才可以发表评论, 登录登录 或者 注册 最新文档 热门文章 阅读排行确认删除? |