前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OneCode低代码引擎插件体系建设

OneCode低代码引擎插件体系建设

原创
作者头像
onecode
修改2023-05-25 18:02:54
4710
修改2023-05-25 18:02:54
举报
文章被收录于专栏:OneCode 低代码OneCode 低代码

前言

本文首发在,4月份知乎OneCode专栏,主要介绍了,OneCode插件体系的建设。

正文如下:

阿里在其“低代码白皮书”中提到,阿里开源其“LowCodeEngine”前,首先是整合吸纳内部100+低代码相关平台应用,将其统一应用到低代码平台LowCodeEngine做支撑,而在其商业易搭PAAS平台描述中更是宣称其愿景是为10万+行业低代码平台提供基础服务。但低代码作为一种基础性的技术其行业应用覆盖面之广复杂度之高是远远超过阿里内部系统,特别是作为低代码引擎核心的设计器更是将面向众多行业应用,千万级开发者使用可想其难度之高。为此阿里为其设计器做了一个公式来定义:

低代码设计器 = 低代码引擎 + 设计器插件 * n + 物料 * n + 设置器 * n

在这个公式中,物料和设置器(模板+组件)以阿里的行业影响力以近两年的应用情况得到了很好的验证。但设计器插件确实这其中最大的未知数,也是引擎发布以来社区反应最为强的一个点。

开源地址:wenzhang/ocstudio

点击可播放视频
点击可播放视频

一,OneCode插件体系简介

OneCode展示
OneCode展示

OneCode插件是嵌入到设计器的内置管理功能,不同于业务组件,插件更多的是系统极的扩展功能。在实际应用中也比较常见,如系统运行期我们要根据用户不同显示不同内容数据,这就需要权限插件来完成,而业务用户在使用过程也会涉及到大量的业务和数据的流转功能而这些功能则需要动态的来管理页面的属性,甚至动态生成注入页面。这就需要流程插件来辅助完成。 在实际开发过程中特别是真实项目的工程开发时,我们往往要针对工程方面的进行很多的宏操作比如批量的修改特定组件样式,按特定条件检索复制组件特性,自动添加动作等等。这些都需要类似的宏插件来完成,OneCode 在整合后端运行以及服务部署方面也是按插件体系来规范的。分别针对,DSM建模提供了DSM插件,发布管理及运行提供了OPS插件, API整合方面提供了代理服务器插件,系统插件部分采用全开源方式共有需要的用户自行修改方便用户后期可以参照插件体系来修改自身的插件体系。

OneCode插件組成
OneCode插件組成

二,插件开发

插件的概念还是比较抽象的,我们选取了,OneCode内测版中的典型的示例来给大家做一个更为形象的描述。*内测版中相关功能在不就发布的社区开源版中应该很快也会和大家见面。

(1)OneCode Studio (ESD)专业版插件开发工具

OneCode Studio(以下简称ESD)是一款专门为低代码平台开发厂商专业开发者(非普通用户)提供的开发工具,为平台厂商的根据自身行业特点快速开发和配置插件来完成自身产品的低代码升级。

ESD基础架构也是构建在OneCode设计器上,开发者在完成基础的OneCode 插件编码后可以直接使用可视化的界面的开发工作。其工作原理能实现,得益于OneCode 自身插件也是建立在自身语言"OneCode"来开发。当然如果读者来深入研究的话,ESD开发工具本身超九成的逻辑功能也是基于"OneCode"语言。

OneCode Studio
OneCode Studio

直接上代码:

代码语言:javascript
复制
@Controller
@RequestMapping("/esd/right/")
@MethodChinaName(cname = "权限管理")
@MenuBarMenu(menuType = CustomMenuType.top, caption = "权限", index = 6)//插件显示位置
@Aggregation(type = AggregationType.customDomain)//声明为Domin域
@OrgDomain(type = OrgDomainType.right)//构建当前域环境
public class RightIndex {

   
    @MethodChinaName(cname = "组件授权")
    @RequestMapping(method = RequestMethod.POST, value = "ComRight")
    @NavTreeViewAnnotation
    @DialogAnnotation
    @ModuleAnnotation(width = "750", height = "600", dynLoad = true, imageClass = "spafont spa-icon-astext", caption = "组件授权")
    @APIEventAnnotation(customRequestData = {RequestPathEnum.SPA_projectName, RequestPathEnum.SPA_className})
    @ResponseBody
    public TreeListResultModel<List<RightFormulaTypeItem>> getComRight(String id, String projectName, String className) {
        return getIndex(id, projectName, className, RightType.comright);
    }
}

编译代码为jar包后,在系统管理中查找插件地址,将jar 拷贝进去。

查找插件路径

(2)插件管理

插件作用域:

插件作用域

插件分类处理

(3)流程插件

流程插件是一种特殊类型的插件,是一种在运行期根据业务数据或用户操作。而触发的的一系列动作。但流程本身也是多业务支持的。OneCode 插件体系针对流程进行了独立设计支持。并将插件体系直接植入到流程定义的各个环节。允许用户根据自身行业以及项目要求,自由定义扩展功能。并可以通过OneCode扩展 基于流程定义的扩展面板。

流程插件管理

流程插件展示

(4),无代码插件(宏公式 )

宏公式是专为普通用户开发插件设计的无代码开发工具。普通用户可以通过类似execl宏公式的方式参与插件开发。

添加一个组件授权插件宏公式

为参数选择器绑定选择器

公式编辑器示例

用户实际使用

点击公式后弹出参数选择器

流程插件宏公式应用
流程插件宏公式应用

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一,OneCode插件体系简介
  • 二,插件开发
    • (1)OneCode Studio (ESD)专业版插件开发工具
      • (2)插件管理
        • (3)流程插件
          • (4),无代码插件(宏公式 )
          相关产品与服务
          实时互动-教育版
          腾讯云实时互动-教育版(原低代码互动课堂)是一款集成音视频连麦、互动白板和直播等多功能的产品,能够帮助您节省90%的开发工作。在教育、医疗、金融、电商和企业培训等领域,可快速搭建一对一教学、互动小班课、直播大班课和直播带货等多种互动直播业务场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档