可拓展的低代码全栈框架

尽管现在越来越多的人开始对低代码开发感兴趣,但已有低代码方案的局限性仍然让大家有所保留。其中最常见的担忧莫过于低代码缺乏灵活性以及容易被厂商锁定。

显然这样的担忧是合理的,因为大家都不希望在实现特定功能的时候才发现低代码平台无法支持,也不希望从某个厂商的低代码平台迁出时发现应用需要彻底的重写。

一些已有产品机智地将低代码的使用场景限定在了特定领域中,例如内部工具或者官网,因为在这些场景中用户更关心开发效率而不是灵活性与定制能力。但当我们希望使用低代码在更多场景中提升效率时,这类产品就不能满足需求了。

因此,我们开始开发 JNPF 这个项目,我们专注于这个低代码全栈框架的拓展性。

设计原则

1.组件设计

在JNPF中,至少包含表单建模、流程设计、报表可视化、代码生成器、系统管理、前端UI等组件,这种情况下我们避免了重复造轮子,已内置大量的成熟组件,选择合适的组件进行集成或二次开发复杂功能,即可自主开发一个属于自己的应用系统。

JNPF平台前端采用的是vue、element-UI;后端采用java/.net、springboot;使用门槛低,支持分布式、k8s集群部署,适用于开发复杂的业务管理系统(ERP、MES等);采用可视化组件模式可以有效地扩展不同的业务功能,并方便实现各种业务需求,且不会导致系统臃肿,若想使用某个组件,按需引入即可,反之亦然。

2.发挥代码的威力,而不是限制

如之前所说的,JNPF并不将用户局限于只能使用按钮、输入框等基础组件开发应用。针对现有平台的内容设计,肯定是不能够满足所有不同业务需求对应的细节诉求,因此JNPF做的一个举动是开放源码交付。

基于此,用户可以摆脱对原厂商的依赖,JNPF提供平台全部源代码给予用户作二次开发,包括表单、流程、接口、平台底层全部源代码,确保没有后顾之忧;也可以基于一些复杂的业务逻辑,使企业在新扩展的业务流程上不再需要重新购买;基于低代码平台开发出来的各类业务系统还可以自主申请软件著作权。

界面展示

作为一款“精而美”的企业管理软件,简单好上手,能有效的规避一些标准软件存在的问题:很多企业在使用各种软件之间,数据不能互联,存在数据孤岛问题;

10分钟完成一个基础应用,2-3小时就能摸清整套系统的使用流程和基本功能的位置,产品的功能集成和操作复杂平衡也较为合理。

1.代码生成器

零代码开发:配备大量可复用控件,通过操作界面元素,拖拽控件自动生成可视化应用;

低代码开发:基于 Mybatis-plus-generator 自定义了一套代码生成器, 通过配置数据库字段的注释,可在线生成 WEB 前端(vue)、移动端(vue)、后端(controller、entity、mapperxml、service)等代码,极大减少开发难度;

2.工作流程

工作流服务为JNPF 自研的一套工作流方案,包含流程表单和流程引擎两大部分,流程表单可视化设计,可配置程度高,采用结构化的表单模版设计,集中解析模式的设计。适应于中国国情的多种场景的需要、配置所见即所得、低代码、高配置;

3.门户设计

全新门户设计,操作简单,自由拖拽,一次编辑多端自适应,充分满足用户的个性化需求。

4.大屏设计

自由布局页面,拖拽控件至页面中,针对不同的控件进行内容设值和数据绑定,所见即所得的实现大屏可视化页面开发;

5.报表设计

无需开发任何代码,用户只需在界面上配置一系列参数即可实现多种类型报表的配置、在线渲染报表内容、报表导出、打印等功能;

6.第三方登录

开箱即用的第三方授权登录工具类库,提供统一接口,支持接入任意 OAuth 网站,快速实现 OAuth 登录功能。

7.多租户实现

多租户技术或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且扔可确保各用户间数据的隔离性。在云计算时代,多租户技术在共用的数据中心以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍然可以保障客户的数据隔离。

提供了三种多租户实现方式,满足不同维度用户的维护,不同维度数据的治理:

(1)独立数据库

每个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本也高。

(2)共享数据库,隔离数据架构

多个租户共享一个数据库,但一个租户独立使用一个 SCHEMA。

(3)共享数据库,共享数据结构

租户共享同一个数据库,同一个 SCHEMA,但在表中通过 F_TenantId 区分租户的数据。

8.分布式调度

集成 XXL-JOB 跨语言分布式任务调度平台,开箱即用,第三方任意语言通 1 过RESTful API 对接调度中心或实现执行器,功能点包含执行器管理、调度任务、调度日志、任务进度监控、多任务模式、自定义任务参数等

9.消息中心

提供了多种类型消息配置及发送的能力,提供消息发送的通用 API,用户可通过此功能模块轻松实现多种类型消息的发送,无缝对接多种消息平台。功能点包含消息模板配置、消息发送配置、消息接收配置、账户配置(包含邮箱、短信、企业微信、微信公众号、钉钉、webhook)、消息监控等

功能框架

JNPF的定位是企业级低代码开发平台,目标是构建各种企业级信息管理系统,例如ERP、CRM、MES、PLM、项目管理、OA等系统。为了能构建这一类系统,JNPF提供了大量的基础功能。包括组织架构管理、角色权限、多级菜单、表单、表格、数据统计、报表展示、API等。

试用地址:https://www.jnpfsoft.com/?csdn

具有广泛的功能,可简化和加快开发过程。解决方案的一些主要功能包括:

  • 可视化开发环境:平台提供可视化开发环境,允许用户使用拖放工具和代码的可视化表示形式(如流程图、图表和表单)创建应用程序。这使得开发过程更加直观和易于访问
  • 预构建的组件和模板:这些平台带有各种预构建的组件和模板,可以快速集成到新的应用程序中。这不仅加快了开发过程,还确保了使用久经考验的组件,最大限度地减少了潜在的问题和漏洞
  • 集成的开发和测试工具:平台通常包括内置的开发和测试工具,使开发人员能够以简化的方式轻松构建、测试和部署应用程序。这种集成有助于协作,减少错误,并确保整个应用程序生命周期的质量一致
  • 跨平台兼容性:许多平台支持开发可跨多个平台(如 Web、移动和桌面)运行的应用程序。此功能允许开发人员创建一次应用程序,并让它们在各种设备上工作,而无需额外的自定义或开发工作
  • 可伸缩性和可扩展性:解决方案通常提供内置的可伸缩性和可扩展性功能,使应用程序能够增长并适应不断变化的业务需求。这包括添加自定义功能或与其他系统集成的能力,使平台成为软件开发的多功能和面向未来的选择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/154808.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ref与DOM-findDomNode-unmountComponentAtNode知识点及应用例子

​​​​​​http​​​http://t.csdnimg.cn/og3BI 知识点讲解↑ 需求: (下载/导出 用post请求时:) 实例: react部分代码 1、点击下载按钮,需要传给后端数据,到数据扁平,不是那么复杂,只需url地址即可完成下载,后端…

神经网络(MLP多层感知器)

分类 神经网络可以分为多种不同的类型,下面列举一些常见的神经网络类型: 前馈神经网络(Feedforward Neural Network):前馈神经网络是最基本的神经网络类型,也是深度学习中最常见的神经网络类型。它由若干个…

SpringBoot 如何使用 Sleuth 进行分布式跟踪

使用Spring Boot Sleuth进行分布式跟踪 在现代分布式应用程序中,跟踪请求和了解应用程序的性能是至关重要的。Spring Boot Sleuth是一个分布式跟踪解决方案,它可以帮助您在分布式系统中跟踪请求并分析性能问题。本文将介绍如何在Spring Boot应用程序中使…

java模拟GPT流式问答

流式请求gpt并且流式推送相关前端页面 1)java流式获取gpt答案 1、读取文件流的方式 使用post请求数据,由于gpt是eventsource的方式返回数据,所以格式是data:,需要手动替换一下值 /** org.apache.http.client.metho…

数据库系统工程师------流水线

流水线 流水线周期:工序中最长的那段执行时间。 流水线计算公式:第一条指令计算时间 (指令条数 - 1)*流水线周期。 流水线吞吐率:指单位时间内流水线完成的任务数量或输出的结果数量。 流水线的加速比:完…

机器学习与模式识别作业----决策树属性划分计算

文章目录 1.决策树划分原理1.1.特征选择1--信息增益1.2.特征选择2--信息增益比1.3.特征选择3--基尼系数 2.决策树属性划分计算题2.1.信息增益计算2.2.1.属性1的信息增益计算2.2.2.属性2的信息增益计算2.2.3.属性信息增益比较 2.2.信息增益比计算2.3.基尼系数计算 1.决策树划分原…

VMware Workstation Player 17 下载安装教程

虚拟机系列文章 VMware Workstation Player 17 免费下载安装教程 VMware Workstation 17 Pro 免费下载安装教程 windows server 2012安装教程 Ubuntu22.04.3安装教程 FTP服务器搭建 VMware Workstation Player 17 下载安装教程 虚拟机系列文章前言一、 VMware Workstation Pla…

手机APP也可以学习Sui啦,通过EasyA开启你的学习之旅

Sui基金会与EasyA合作,开发了一门面向初学者的Sui课程。这一适用于Android和iOS移动端的学习体验,是进入更广泛的Sui社区和生态系统的入口。在这门课程中,学习者将以有趣和互动的方式获得对Sui的基本了解,最终能够在测试网络上部署…

Wifi列表扫描和Wifi链接

上面的截图&#xff0c;就是本文要介绍的主要功能。 1.准备工作&#xff0c;声明权限&#xff1a; <uses-permission android:name"android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name"android.permission.ACCESS_WIFI_STATE&quo…

10.selenium进阶

文章目录 1、嵌套网页1、1 什么是嵌套页面1、2 selenium获取嵌套页面的数据 2、执行JavaScript代码3、鼠标动作链4、selenium键盘事件5、其他方法5、1 选择下拉框5、2 弹窗的处理 6、selenium设置无头模式7、selenium应对检测小结 1、嵌套网页 ​ 在前端开发中如果有这么一个需…

使用css 与 js 两种方式实现导航栏吸顶效果

position的属性我们一般认为有 position:absolute postion: relative position:static position:fixed position:inherit; position:initial; position:unset; 但是我最近发现了一个定位position:sticky 这个可以称为粘性定位。 这个粘性定位的元素会始终在那个位置 <st…

rust cfg的使用

前提是一个crate倒入另一个crate。 先看结构 test_lib目录结构 这与另一个crate处于同一个目录,所以另一crate倒入的时候在Cargo.toml中使用如下语句。 test_lib = {path = "../test_lib" }先在test_lib/src/abc/abc.rs中添加没有cfg的两个函数做测试。 pub fn…

虹科方案丨自动驾驶多传感器数据融合方法

文章来源&#xff1a;雅名特自动驾驶 点此阅读原文&#xff1a;https://mp.weixin.qq.com/s/QsPMWZDGZaPdEx47L2VmeA 近年来&#xff0c;深度学习技术在涉及高维非结构化数据领域展现出了最先进的性能&#xff0c;如计算机视觉、语音、自然语言处理等方面&#xff0c;并且开始涉…

Django实战项目-学习任务系统-用户登录

第一步&#xff1a;先创建一个Django应用程序框架代码 1&#xff0c;先创建一个Django项目 django-admin startproject mysite将创建一个目录&#xff0c;其布局如下&#xff1a;mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.py 2&#xff0c;再创建一个…

智能视频分析系统AI智能分析网关V3触发告警图片不显示该如何解决?

AI智能分析网关V3包含有20多种算法&#xff0c;包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等&#xff0c;可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频监控系统EasyCVR一起使用&#xff0c;可…

Android免杀小结

目录 msfvenom 自动生成 自带免杀 工具免杀 Thefatrat backdoor-apk old-fatrat msfVenom嵌入式方法 venom 工具小记 加壳 源码免杀 加壳 源码混淆 数据通信 启动和运行方式修改 对抗反编译 反编译工具崩溃 ZIP文件格式对抗 ZIP通用位伪加密 AndroidManife…

MySQL 面试知识脑图 初高级知识点

脑图下载地址&#xff1a;https://mm.edrawsoft.cn/mobile-share/index.html?uuid18b10870122586-src&share_type1 sql_mode 基本语法及校验规则 ONLY_FULL_GROUP_BY 对于GROUP BY聚合操作&#xff0c;如果在SELECT中的列&#xff0c;没有在GROUP BY中出现&#xff…

网络初识(JAVA EE)

文章目录 一、网络发展史二、网络通信基础三、协议分层四、封装和分用 一、网络发展史 独立模式&#xff1a;计算机之间相互独立&#xff0c;每个终端都各自持有客户数据&#xff0c;且当处理一个业务时&#xff0c;按照业务流程进行 网络互连&#xff1a;将多台计算机连接在一…

如何退出commit_message页面

虽然提示命令了&#xff0c;但我试了&#xff0c;退不出去。我没搞明白。。。 退出编辑 Crtl Z设置git的编辑器为vim或vi git config --global core.editor vim如果没有vim编辑器&#xff0c;设置成vi编辑器也行 git config --global core.editor vi重新提交 再次进入commi…

【HTML5】语义化标签记录

前言 防止一个页面中全部都是div&#xff0c;或者ul li&#xff0c;在html5推出了很多语义化标签 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 常用语义化案例 一般我用的多的是header&#xff0c;main&#xff0c;footer 这些标签不难理解&#x…