本节将带您从零开始,手动开发一个简单应用“HelloWorld”。
通过创建第一个应用,您可以轻松漫游AppCube,初步认识并体验AppCube。
除了从零开始创建全新空白应用方式外,AppCube还支持使用模板快速创建应用,详细操作步骤及模板使用说明,请查阅使用模板创建应用。
本应用功能简洁:主要是开发一个简单页面,在页面上的输入框中,输入一条新词条,单击“新增”按钮,将添加的词条保存到对象模型中,并以表格形式展示出来,如图1所示。
通过体验如何创建第一个应用,您将了解到:在AppCube中创建一个应用的步骤及相关操作注意事项。
具体如何注册,申请公测请查阅“注册租户”章节。
在使用AppCube前,您需要先了解,在AppCube中,创建一个应用的大致开发流程:
本实例将按照以上的开发流程,带您在AppCube上,体验创建第一应用,具体操作如下。
首次创建应用时,需要定义私有的命名空间,以区别您与其他租户的应用及应用元素,命名空间唯一且不能重复,不能修改。后续您创建的对象、脚本、服务编排、页面等的名称中,系统都会为其增加命名空间的前缀。
例如,本应用中定义的命名空间为“CNAME”,后续创建的所有对象、脚本、页面等都将以“CNAME__”开头,请您根据实际情况设置。
命名空间一旦设定不能修改,请慎重定义;建议您使用公司或者团队的缩写作为命名空间。
参数名 |
参数说明 |
本实例需要填写的值 |
---|---|---|
标签 |
应用中用于展示的文字,为了区分不同应用的描述信息,例如,标签在“我的应用”下显示的应用名,应用创建之后,应用“标签”可以在应用设置中修改。 |
我的第一个应用 |
名称 |
应用在系统内的唯一标识。 系统会自动在该名称前添加命名空间__。应用创建之后,应用“名称”不支持修改。 设置要求:必须以字母开头,没有连续的下划线,空格和特殊字符。 |
HelloWorld 说明:
应用创建后,应用名称自动添加命名空间前缀CNAME__HelloWorld。 |
轻应用创建完成后,将自动跳转到应用开发界面,如图5所示,轻应用中有4个默认目录。默认目录是AppCube推荐使用的应用文件目录结构,后续开发的页面、对象及后台逻辑,建议按照以下对应关系进行创建,以便应用目录管理。
您也可以根据自己的开发习惯,单击“我的第一个应用”右侧“+”,添加新的应用目录,自定义放置应用资源。
【信息】什么是对象?对象是AppCube的核心功能之一,对象相当于传统数据库里的一张表,用于持久化业务数据。AppCube中有内置的标准对象,也有租户开发者创建的自定义对象。
一个由租户开发者创建的自定义对象,在创建之后,就会有各种操作方式:前端页面可以使用页面模型绑定此对象,并使用表格组件,直接展现对象数据;AppCube中更为常用的则是使用脚本、自定义JS代码、服务编排等,对该对象中的信息进行增删改查。
根据HelloWorld应用设计的功能,首先您需要先创建一个存放词条的对象helloObject,用于保存词条名、词条描述、创建日期信息。对象helloObject中使用到的字段,如表1所示。
字段标签 |
字段名称 |
数据类型 |
是否唯一 |
是否必填 |
建议长度 |
---|---|---|---|---|---|
词条名 |
name(预置的标准字段) 说明:
自定义对象具体预置了哪些标准字段,请在了解自定义对象中系统预置的标准字段查看。 |
Name |
是 |
是 |
- |
创建时间 |
createdDate(预置的标准字段,不需要修改) |
日期/时间 |
- |
是 |
- |
词条描述 |
detail |
文本 |
否 |
是 |
255 |
对象及字段创建详细步骤如下。
【信息】本实例中,使用默认“Model”目录存放对象,因此需要在“Model”目录下进行创建对象操作,对象添加完成后,系统默认会将该对象放在“Model”目录下,您也可以根据个人喜好选择其他目录创建。
【技巧】如果您输入“标签”的值,首字符为英文字母,单击“名称”的输入框,系统会自动生成与“标签”对应的“名称”,您也可以根据需要修改这个自动生成的“名称”。
参数名 |
参数说明 |
本实例需要填写的值 |
---|---|---|
创建新对象 |
添加对象的方式。 |
保持默认,选中“创建新对象”。 |
标签 |
对象展示的名称,为了区分不同对象的描述信息。 对象创建完后,“标签”可以在对象的“基本信息”中修改。 |
helloObject |
名称 |
对象在系统内的唯一标识。
|
helloObject 说明:
对象创建后,系统自动为对象名称添加前后缀,实际创建的对象名为:CNAME__helloObject__CST |
自定义的对象创建以后,系统将自动创建一些标准字段,供您使用,您可以在“自定义对象”的详情页面中,单击“标准字段”页签,查看自定义对象的标准字段,标准字段如图8所示,其中“name”和“createdDate”两个字段,在后续开发中将会用到。
自定义字段可以手动创建,也可以批量导入自定义字段,具体操作请查阅《用户指南》中导入方式定义对象字段章节。
字段“名称”为“detail”,实际创建的字段,系统将自动添加前后缀“CNAME__detail__CST”,“CNAME__”前缀由租户命名空间决定,“__CST”后缀代表是自定义字段。
在AppCube中,预置了一些权限集,并提供了自定义对象中字段级的安全控制,这些权限配置是由管理员预置的,权限集及设置的更多详细介绍,请查阅《用户指南》中“了解权限配置”章节。
在AppCube中,如果某个自定义字段在创建的时候,设置了添加到页面布局,那么在该对象的页面布局的页面表格中,将可以对该字段进行增删改查等操作。
【技巧】自定义对象的页面布局,可以直接操作对象,进行增删改查等操作,更为方便的是可以作为前端页面直接使用,对象页面布局更多详细介绍,请查阅《用户指南》中“编辑对象的页面布局”章节。
【思考】什么是服务编排?服务编排功能是AppCube的核心功能之一,即是在可视化、模板化的服务编排页面,通过拖拽图元,并配置图元,再拖拽相关参数,就可以实现特定的业务逻辑的一种开发方式。
服务编排类似于编程中一段有流程、条件处理、判断逻辑的程序;这段程序有输入参数和输出参数,可以独立成为一个对外调用的方法;同时,在服务编排内部,也可以调用其他的方法。
本实例中,创建的服务编排目的是操作一个存放词条的自定义对象,实现将服务编排中获得的入参信息,分别以“词条名”、“词条描述”字段写入到词条对象helloObject中。如果您还没有创建,请查阅创建存放词条的自定义对象章节,进行创建。
将光标放在“Logic”目录上,单击右侧“+”。在弹窗菜单中,选择“服务编排”。
参数名 |
参数说明 |
本实例需要填写的值 |
---|---|---|
创建一个新的服务编排 |
创建一个新的服务编排流程。 |
保持默认,选中“创建一个新的服务编排”。 |
使用已有的服务编排 |
基于已有的服务编排创建。方便用户快速继承已有服务编排的配置,增加效率。 |
不设置。 |
标签 |
服务编排用于展示的名称。创建之后不支持修改。 |
helloFlow |
名称 |
服务编排在系统内的唯一标识。 系统会自动在该名称前添加命名空间__。当其他功能调用服务编排时,调用的是服务编排的“名称”,而不是标签。 创建之后不支持修改。 |
helloFlow 说明:
实际创建的服务编排名为:CNAME__helloFlow |
类型 |
服务编排的类型。
|
保持默认类型:Autolaunched Flow |
单击,展开“全局上下文”,再单击“变量”后的“+”,修改“variable0”为“name”;再次单击“+”,创建变量“detail”。这里创建的“name”、“detail”分别对应词条对象helloObject中的“词条名”、“词条描述”字段。
“全局上下文”是定义服务编排中使用到的变量列表区域,服务编排中支持定义变量、变量集、常量、结构体等参数,具体变量创建方式及变量说明请查阅《用户指南》中“配置服务编排变量以及输入输出参数”章节。
“记录创建”图元是通过关联当前应用(HelloWorld)中已存在的一个对象(词条对象helloObject),然后通过设置对应的操作字段(name、CNAME__detail__CST),实现向这个对象中增加记录的功能。AppCube预置了多种逻辑图元,详细图元分类及功能介绍,请查阅《用户指南》中“图元介绍”
系统会弹出窗口,显示编译结果。
{ "name": "helloWorld", "detail": "helloWorld 是我的第一个应用" }
执行成功,界面上会返回设备对象中的全部信息,样例如下:
【信息】AppCube有三种前端页面类型,标准页面、高级页面、大屏页面,那么什么场景下使用标准页面?
标准页面常用于业务数据的增、删、改、查,并且对页面样式要求相对简单的场景。而标准页面的优势在于,只需要拖、拉、拽页面组件,配置组件属性,绑定页面模型,再加上少量事件代码,即可快速拼装出一个完整的页面。
HelloWorld应用的业务功能主要是通过标准页面呈现出来的:通过使用“标准页面”能力,将“对象”、“服务编排”与页面中的组件、事件代码关联、绑定、调用,实现将前端输入的数据信息传递到对象中,并最终再通过页面呈现出来的效果。
页面中使用的词条对象helloObject及服务编排helloFlow需要提前创建。
如果您还没有创建,请先查阅词条对象及服务编排章节,并根据相关步骤进行创建。
【信息】本实例中,使用默认“Page”目录存放服务编排,您也可以根据个人喜好选择其他目录创建。
参数名 |
参数说明 |
本实例需要填写的值 |
---|---|---|
标签 |
服务编排用于展示的文字。创建之后不支持修改。 |
helloPage |
名称 |
服务编排在系统内的唯一标识。 系统会自动在该名称前添加命名空间__。当其他功能调用服务编排时,调用的是服务编排的“名称”,而不是标签。 创建之后不支持修改。 |
helloPage 说明:
实际创建的服务编排名为:CNAME__helloPage |
另存为模板 |
是否保存为模板。保存为模板后,该标准页面会作为模板出现在页面开发界面左侧“模板 > 我的模板”中。 说明:
另存为模板后,可以基于模板,快速创建页面。 |
不启用,保持默认。 |
页面创建后,直接进入页面设计视图,新建的页面,默认是当前用户锁定状态,可以进行编辑保存等操作。
当编辑已有标准页面时,为防止编辑时多人篡改,编辑前请单击进行锁定。
AppCube的标准页面是通过数据模型驱动的,页面所有的逻辑都是围绕数据模型展开的,前端组件与对象及服务编排关联都需要创建页面模型。
标准页面有设计视图、模型视图、事件视图、样式代码以及更多中的组件代码、第三方库等,详细介绍及用法请查阅《用户指南中》“标准页面”章节。
在“设计视图”中,拖拽一个页面组件到页面中,选中该组件后,在右侧“属性”页签,即可设置该组件的绑定数据、样式等属性。
栅格容器是一种灵活的容器类页面布局,可以将页面进行横向和纵向分割。
绑定之后,由页面“词条名”、“词条描述”输入框输入的值将作为服务编排的输入参数“name”、“detail”值,当页面调用服务编排时,即可将前端页面输入的值写入到词条对象helloObject中。
表格绑定页面对象模型后,系统自动将对象字段做为表格的列名显示,如果对象模型关联的自定义对象(这里是词条对象helloObject)中,有词条记录,将会自动查询并显示在页面表格里。
【技巧】表格组件绑定页面模型后,可以自动添加页面模型里面的字段为表格列,也可以将模型的字段作为表格列查询的条件,您可以在表格组件的属性中“表格列”及“表格区块”中设置。
$model.ref('helloFlow').run().then(() => { // 根据Name获取组件 var _table = context.$component.get('table_0'); _table.doQuery(); }).catch(e => { // 失败消息 context.$message.error('新增词条失败:' + e.resMsg, 5); });
按钮事件主要是通过页面服务对象(helloFlow),调用服务编排,完成新增数据功能。
在页面开发时,单击预览按钮,进入的预览页面,是开发环境中的预览,跟实际效果稍有差距,本节将介绍如何在应用的预览环境中,预览应用效果。这里预览效果跟实际在运行环境中基本一致。在应用配置下,还可以更改应用框架的样式和颜色。
在导航条上的页面较多时,您可以添加目录。添加目录可以更方便区分页面类型,方便导航使用。目录添加之后,会在应用导航中直接显示,目录下可以添加页签。另外,应用配置中还可以设置应用选项列表,系统参数等信息,您可以在系统配置章节查看。
参数名 |
参数说明 |
本实例需要填写的值 |
---|---|---|
页面类型 |
当前要添加的页面的类型:
|
标准页面页签 |
标签 |
显示在应用导航的名称。 |
HelloWorld |
名称 |
用于唯一标识页签的名称。 |
helloPage |
图标 |
导航页签的展示图标。 |
这里可以不设置,如果有可以选择一个图标直接上传。 |
页面 |
需要添加的页面 |
helloPage(CNAME__helloPage)。 |
描述 |
当前页面的描述信息,用于了解当前页面的主要内容。 |
不设置。 |
在应用开发完成后,应用需要编译、打包、发布,既可以发布到当前租户的运行环境,也可以共享给其他租户,在其他租户的开发环境或运行环境下安装。
AppCube支持多种发布方式,本实例中使用的则是将应用发布到“我的仓库”方式进行发布,后续将会通过“我的仓库”再部署到运行环境。
AppCube支持编译2种应用包:资产包和源码包。
编译类型为“源码包”时,只有发布到“我的仓库”一种发布方式。
AppCube应用(资产包)发布方式如图39所示。本实例中使用的则是将应用发布到“我的仓库”方式进行发布,后续将会通过“我的仓库”再部署到运行环境。
编译前,还可以单击进行一些自定义的编译设置。
【思考】应用发布之后的包可以下载吗,到了哪里?其他租户可以看到吗?
在开发环境中,将应用发布到“我的仓库”后,AppCube将会把该应用包,同步发布到当前租户的运行环境中,以便于在运行环境中部署运行。
如果您已经验证成功,恭喜您!您已经完成了在AppCube上第一个应用的开发!
您还可以查看快速入门中的其他实例,继续深入探索AppCube的应用开发之旅!
云备份和镜像服务有很多功能交融的地方,有时需要搭配一起使用。镜像有时也可用...
本文介绍使用faascmd工具时常见的问题与解决办法。 常见问题 出现“Name Error:g...
公司简介 佛山市海伦宝电器有限公司创建于2008年,是一家集环保冷风扇、干衣机、...
腾讯云+社区联合腾讯码客、腾讯安全平台部全新打造的创新赛事—— 腾讯极客挑战...
一支来自于苏黎世技术团队组成的专注于神经形态运算及人工智能处理器设计与开发...
支持对生成的备份数据进行跨区域复制,并支持使用复制到目标区域的备份创建镜像...
为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUni...
今日是一年一度光棍节,首先祝各位码农朋友们节日快乐,在关注技术的同时也要同...
SSL证书审核需要多久时间? 为什么“证书状态”长时间停留在审核中? SSL证书提...
数据科学实际上可定义为从数据中获取额外信息的过程。在进行数据科学研究时,真...