使用活字格进行开发

概述

活字格是一个企业级 低代码开发平台,旨在显著提升企业或者软件公司应用系统的开发效率,同时提供前所未有的灵活性和扩展性,开发人员可以使用涵盖整个开发生命周期的集成开发环境(活字格设计器,服务管理器)进行开发、质量检测、部署、监控和管理。

单一集成开发环境(活字格设计器)

整个应用程序使用低代码方法构建在单个集成开发环境上。这包括前端、后端、数据库以及与现有系统或服务的集成。

使用官方提供的DEMO和模块可快速的构建您的移动或客户端应用的UI。您可以使用拖拉拽的方式快速构建页面的UI布局、样式和业务逻辑,同时也可以通过标准的HTML、JavaScript 和 CSS 扩展 UI,并且支持通过开发简单的插件访问其他设备功能(地图、串口、百度OCR 等)。

后端的所有方面都是可视化开发的,包括服务端命令、定时任务、存储过程执行和复杂业务逻辑的实现。同时你也可以使用自定义代码扩展后端的功能。

数据库方面,支持可视化地为你的应用程序进行数据库建模或者连接到任何现有的数据源。

覆盖整个开发生命周期

活字格在整个生命周期中为开发人员提供支持:

快速开发和集成:快速开发与现有系统和数据库集成的应用程序。通过前后端命令引擎和文件处理引擎等确保应用程序的质量。

部署:只需单击几下,您的应用程序就可以安全地从开发阶段转移到生产阶段。应用,数据库,权限等多个方面保证部署的安全。

监控:服务器中自动配备监控功能,用于跟踪客户端、服务器端的用户访问;一键收集错误日志进行分析。

管理:轻松对应用程序执行日常操作,包括应用程序服务的权限和配置管理。

 

开发时会“撞墙”吗?

当开发人员有这样的疑问的时候,他们往往只是体验了我们的可视化应用程序开发模型或看过一个演示,并担心活字格的应用是否能够包含自己开发的代码。他们担心在开发过程的后期会遇到平台限制,这将阻止他们构建企业级应用程序、设计丰富而复杂的移动端和Web用户界面或者与其环境中存在的其他第三方系统和数据库进行集成。

活字格在设计上是开放的,允许使用您自己的代码扩展应用程序的所有层:前端、后端、数据库和集成。

使用您自己的代码扩展所有层

此图显示了所有层的系统外扩展性:

活字格系统扩展能力

(活字格系统扩展能力)

扩展用户界面:无需编码即可创建复杂的移动和响应式Web用户界面。开发和 UX/UI 团队可以使用大量单元格组件和UI样式类库,他们可以使用拖放式可视化编辑器轻松组合和编辑这些内容来构建应用程序。同时也可以在活字格设计器开发环境中使用 CSS 自定义默认外观,UI类库中也可以扩展了新的、可重用的UI模板去进行复用。活字格支持在全局,单页面以及任意时机去执行自定义的Javascript代码,实现自主扩展。

扩展后端:库、集成组件和任何自定义代码都可以由活字格发布和管理。自定义代码公开的方法可作为活字格中的元素使用,并且在部署和运行应用程序后成为应用程序的组成部分。同时,服务端命令支持自定义扩展,通过后端C#代码的实现,封装通用功能,可以实时被复用。

集成外部数据库:活字格开箱即用地连接到 SQL Server、Oracle、Mysql。此外,活字格外联数据库支持使用ODBC数据源去连接其他数据库,比如PostgreSQL ,MongoDB等等。

与现有系统集成:活字格通过安全提供程序,单点登录,服务端命令和REST API与其他第三方系统开箱即用地集成。还可以集成第三方服务或者硬件服务自由扩展插件。

在葡萄城市场中,有相应的应用和插件的存储库,包括整个公共开源(也会存在个人开发资源)库或插件的商品,然后可以像它们属于活字格本身一样进行重用。我们的策略是允许我们的开发人员社区协作并不断扩展活字格插件,并使用新的可重用元素最终支持我们的整个客户群。

如果只有1-2个高级开发,可以让高级开发专门开发插件,然后其他开发者即可图形化的使用这些功能。

而且支持使用活字格只开发前端,使用代码写好后端,所有前端和后端的交互都是用HTTP请求的方式来实现;当然也可以选择使用活字格只开发后端,所有前端的功能都是用代码来开发,活字格支持OAuth2.0,支持通过前端发送请求给活字格的后端去处理。

活字格视觉语言的表现力

在活字格中,使用独有的单元格类型可以快速的完成UI的布局,使用命令来设计业务逻辑,这可以在页面级别完成,或者用户可以使用模板命令定义一组方法/函数以重复用于页面和工作流。同样的,也可以在服务端完成,用户可以通过定义私有的服务端命令将一组功能进行整合,应用于不同的业务逻辑中。

对于开发业务逻辑而言,活字格提供了大量的可视化命令(赋值、条件、循环、异常等),可以直观地编写任何类型的复杂逻辑。同时由于企业应用程序非常容易受数据驱动,因此活字格还提供了关于数据操作的可视化命令,在服务端命令中,事务命令可以很好的将数据进行隔离,保证后端逻辑处理时数据的一致性。同时,活字格也支持自行构建可视化命令。

避免快速应用程序开发的陷阱

活字格的单元格和命令,在我们设计之初均被设计为开放并且可扩展的,开发人员可以自行开发适用于自身业务的单元格类型和命令配合自己应有系统的开发。

我们并没有将其宣传为“无代码”,而是从一开始就将活字格的开发模式设计为在现有编码技能之上的一层,它实际上促进了对标准 3GL 语言(例如 C#、JavaScript、SQL)的优雅“降级”。目标不是让开发人员远离编码;相反,它只是增加了开发人员已经知道的功能,因此开发会变得更加高效,同时也避免了“撞墙”的风险。

 

如何选择第一个活字格项目?

刚刚上手活字格,在第一次使用时或多或少心里还是有所芥蒂的。如何选自一个项目开始使用低代码开发项目?这里我们的一些建议:

因为是初次尝试,新产品的学习成本,磨合成本等等可能都会让你觉得项目的项目的成本似乎不降反升,这些都是正常的,第一个项目,我们的对自己的要求就是第一个项目不要想着挣钱,要有只要不赔钱就行的心里预期,挣钱的机会在后面;

最好将第一个项目定义成试点项目,尽量使用低代码产品多开发一些功能,尽量将多测试一些场景,而且尽量找一些通用的场景进行测试;

尽量找熟人的项目,既然是要尝试,那么风险可能是不好控制的,如果项目的甲方是熟人,风险又能降低一些(如果您有丰富的行业经验,可忽略此项)。

如果第一个项目完美交付,之后就可使用低代码走该行业的路线,因为需求大同小异,很多时候,都会是在复用第一的项目,第一套没挣的钱,都会在第2,3......套挣回来,而且活字格的优势也能发挥的更好。

 

我可以使用活字格构建报表和仪表板吗?

是的。一个公开可用的活字格仪表板功能示例是: 功能演示

活字格有许多图表类型,开发人员可以用来构建报表和仪表板,并将它们集成到其他应用程序中:

大量开箱即用的图表小部件。

可视化数据聚合能力

强大的图表库

开放式架构,可整合任何 HTML/CSS/JavaScript 插件

导出到 Excel

导出为 PDF

图表插件基于纯 HTML5 和 JavaScript,提供直观的交互式图表,可在桌面浏览器或移动设备上无缝工作。活字格还允许Web服务的可视化设计和公开,同时它拥有自己的报表模块。开发人员可以直接在活字格中使用数据源开发自己的报表和仪表板,无需任何编码。

在高级场景中,例如与BI工具集成,活字格具有开放式架构,可与葡萄城商业智能报表软件完美配合。

部署活字格应用程序的数据库是标准的 SQL Server,Mysql 或 Oracle 数据库等等。您可以通过外部常规工具访问底层数据库,并按照常规流程使用数据。

 

活字格可以用于构建复杂/大型应用程序吗?

是的。 活字格为开发、质量保证、部署和管理(整个应用程序生命周期)提供了一种完全集成的方法,使其能够支持大规模应用程序开发。

借助活字格,您可以创建强大的架构来支持其可扩展到数百万用户的核心业务和应用程序。它在客户自行部署的环境上执行,可从小型应用程序扩展到大型企业安装。

我们的大多数客户都在活字格上构建了复杂的门户和系统。

低代码开发大型外包项目:由 150 张数据表,400 个页面构成,功能全面,规模较大,属于中大型 ERP 系统;从立项到主要功能部署完毕仅花了8个人月时间。

低代码开发大型外包项目屏幕截图

低代码开发大型软件产品:“大圣”系列模具行业数字化智造系统是宁波聚轩自主研发的产品,包含ERP、MES和WMS等核心业务系统,设计结合了工业4.0体系、中国制造2025、TOC、JIT、JITS、机器自动化等智能精益制造核心理念。主要包括业务管理、模具设计、计划管理、进度管理、采购管理、生产管理、外协管理、试模管理、仓库管理等功能模块

低代码开发大型软件产品屏幕截图

此2个项目选自活字格低代码开发平台案例

 

活字格是否支持复杂的业务逻辑?

企业级系统总是有一个业务或域逻辑层,它通常在后端编码实现,确定如何创建、显示、存储和更改企业业务数据。

业务逻辑可以很简单,就像写入单个数据库表一样。它也可能非常复杂,例如同时写入多个表,同时检查用户权限并调用多个外部系统进行验证和附加数据输入。例如,在传统或经典的三层Web应用程序架构中,大部分业务逻辑驻留在数据库级别,通常包含在难以维护的存储过程中。

活字格旨在解决这种复杂性,并在系统中创建复杂逻辑和维护过程中实现高生产力。许多功能和构造简化了复杂的业务逻辑编码:

程序化结构:创建复杂逻辑所需的基础要素

可扩展性:能够使用自定义代码引入更多功能

数据源操作:通过可视化数据聚合或编写纯SQL语句简化数据库连接和公开API Web服务

代码重用性和模块化:可以在任何地方重用的逻辑

异步逻辑:异步调用接口获取数据

定时任务:定期执行特定的后端活动

程序化结构

除了用于编码的可视化点击模型外,活字格还拥有创建复杂逻辑的所有基本程序结构:条件命令、循环命令、导入导出命令、设置变量命令等等。具有格式化、转换、数学、文本操作等功能的完整表达式语言以及兼容了Excel主流的400多种公式为开发者提供了帮助计算任何复杂逻辑所需的灵活性。

可扩展性

使用自定义代码可以轻松引入更多编程功能;例如,百度地图,串口通讯,OCR识别等等。前后端均可嵌入代码,且支持打包插件;任何一个功能,如果活字格自身的功能无法满足,可直接引用自定义代码辅助。

数据源操作

作为系统集成的重要组成部分和基础能力,多源数据整合被更多开发者和企业 IT 决策人员视为低代码开发平台产品的必备功能。为了支撑多源数据整合,活字格针对不同的应用场景,提供了三种方案。

  • 在提供内置数据库的基础上,活字格支持外联 MySQL、Microsoft SQL Server、Oracle 等多种主流数据库。开发者可以像使用内置数据库一样,使用外联数据库进行系统构建,不论是与第三方系统的数据库做数据整合,还是直接使用专业级数据库构建高性能的企业级应用,都不存在技术障碍。
  • 活字格提供了 JSON 数据源解决方案,由 HTTP 请求调用和 JSON 数据解析与处理功能构成。借助该方案,开发者无需编码即可调用行业软件、AI 服务、IoT(物联网)服务等云服务提供的 Web 服务接口,发送请求,将数据展示给最终用户进行后续操作。
  • 针对仅提供 Excel/CSV 文件导出的第三方软件,活字格内置了开箱即用的 Excel 文件导入功能,可以解析 Excel 文件和CSV文件,按照设定的导入策略,将其中的数据抽取到数据表或页面上。

代码可重用性和模块化

使用活字格编写的所有逻辑都可以在应用程序内的任何地方重复使用,同时服务端命令也可以暴露给第三方软件系统,此功能允许创建全面的模块和API,从而形成完善的架构和真正的模块化。

例如,使用活字格的服务端命令可以轻松实现递归等经典编程模式。

异步逻辑

在某些情况下,完成某些处理例程所需的复杂性和时间太长而无法在单击按钮后等待。 活字格允许您轻松地异步运行任何服务端逻辑。

定时任务

定期要执行的事务,通常成为定时任务,是另一种类型的复杂逻辑。使用活字格可以轻松地设计定时的周期,按照周期定时去执行业务逻辑。

为什么活字格更好?

使用活字格编写复杂的逻辑实际上比使用传统的编码语言更好,因为:与通过数千行代码相比,点击模型的视觉特性使知识转移极其容易。

复杂的逻辑是……复杂!但是成熟的可视化调试器允许开发人员深入了解可视化代码并了解其行为方式,从而使故障排除变得轻而易举。

 

活字格是否支持国产化?

是的。 活字格能够支持主流的国产化数据库和国产化操作系统。

国产数据库:达梦,南大通用,人大金仓,……

国产操作系统:中标麒麟(银河麒麟与中标普华已在2010年12月16日宣布合并品牌),统信UOS,优麒麟,Deepin,……

这些相信您已经有所了解,但是对低代码公司和代码产品本身有疑虑,一个产品是否支持国产化不单单只是这个产品是否能够支持国产的数据库和操作系统,还要从公司,产品和软件技术本身来看。

1) 公司:西安葡萄城从1988年成立,致力于工具开发,主流的SpreadJS,Wyn 商业智能,活字格等产品均是由西安葡萄城研发中心团队自主研发的产品,可以支持主流的国产操作系统和国产数据库。

2) 产品:这里的产品指的是产品的功能,具体的评估点会在后续的章节中详细说明

3) 软件技术:很多人可能会考虑使用Java的是因为开源的,使用.Net存在风险;不过目前,Oracle购买了Java,以后的Java走向还不明朗,而.Net Core从开始到现在一直是开源项目,对于大家的开发,并不会受到什么限制。

 

活字格是否可以创建复杂的表单?

是的。活字格具有出色的布局和样式功能,条件显示和命令控制,以及使其能够开发复杂表单的数据验证。

布局和样式

将复杂表单分离成多个具有一致输入大小和完美对齐的部分绝非易事。活字格简化了它的全部:

内置网格布局:开发人员可以轻松地将页面中的元素按比例调整,支持基础的固定布局,以及流式的自适应布局,同时还支持页面的范围布局,让Web页面和移动端能够自适应浏览器大小。

CSS样式表:开发人员可以通过添加CSS样式来自行控制单元格元素的样式显示。

单元格样式:此编辑器面板允许更改为最常见的CSS属性。

条件显示和命令控制

在某些复杂的形式中,当用户希望输入文本后,显示新格式。复杂表单中仅显示部分用户有权限的某些元素或字段。活字格消除了构建这些功能的挑战:

基于角色的权限控制:获取用户在UI或业务逻辑级别的角色并加以权限控制。

UI元素的可见属性:此功能可控制单元格元素的渲染。

视觉IF构造:此构造在评估布尔表达式时呈现真假的分支。

内置Ajax功能:重新加载,刷新,并在不重新加载整个页面的情况下删除表单。

启用UI控制事件的构造:例如,在选择组合框值,复选框,或者文本输入更改时触发操作。

数据验证

活字格支持页面数据的客户端和服务器端验证。

客户端验证

在客户端,可以在没有任何编码的情况下启用必需字段和数据类型不匹配验证。

可以使用活字格内建的数据验证完成负责的客户端验证,例如,身份证号,邮箱等等,正则表达式可直接在活字格中进行验证。

同样也可以使用简单的JavaScript片段实现更复杂的客户端验证,例如密码复杂性小部件或社会安全号码(SSN)验证。这些代码段可以使用JavaScript编辑器轻松编程并与UI控件集成。

服务器端验证

前端浏览器允许并且很容易篡改页面的HTML和JavaScript。服务器端验证是确保数据准确的关键,然后才能访问其他任何第三方系统。

活字格服务端命令中保护数据验证逻辑,可以验证数据的准确性,同时也可以根据条件去操作或保存数据。查询,Web服务调用,文本操作函数,数学函数,数据格式和转换只是最常用的验证方式。

同时活字格提供消息提醒插件,可以在出现错误的时候,在浏览器屏幕上显示验证消息。