Mendix与JEECG对比
前言
对于这次的对比分析,首先通过网上查找资料,进行一个分析,资料虽然很丰富,但很多都是重复的,或者不是我们想要的。真正想要了解的相对来说还是比较少的,官网提供了详细了文档可查看,很多也很详细,但是想要快速了解它又太繁琐了,所以我采用的------是表格对比的方法,进行一个对比分析。然后根据,网上的介绍,及官网的讲解,跟我自己的理解进行一个分析对比。目前这两个平台各有各的特色,有优点也有对应的缺点。其实总的来说,最大的区别在于什么呢,在于面向的人群,是给专业的开发人员使用,还是给业务人员使用。这是它们之间一个最大的区别(当然JEECG平台也有很多基础的功能,业务人员也可以正常使用,我这里说的是Online模块)。经过查找资料跟文档,目前我得出的这个结论。当然也有很多的不同,其实那些的不同就是基于这个区别去设计实现的。----------当然这只是我个人的看法。
基础对比
问题/平台 | Mendix | JEECG |
---|---|---|
是否提供源码 | 否 | 是 |
是否有文档 | 是 | 是 |
是否有教程 | 是 | 是 |
教程详细程度 | 很详细 | 很详细 |
是否有视频教程 | 有(b站) | 有(b站) |
网站的响应速度 | 比较流畅(需要一定的加载时间,但不长) | 流畅 |
国内资源 | 非常丰富 | 也是非常丰富的 |
论坛 | 有专门的中国论坛,(未加入人数未知) | github(stars人数30.7K,forks12.2K),也有相应的qq交流群 |
成熟度 | 开发出来将近十多年,有着比较完善的机制了 | 近几年开源的项目,github(Issues 32),但还是存在一定的问题的 |
进阶对比
问题/平台 | Mendix | JEECG |
---|---|---|
前端组件的开发 | 支持react,vue | 支持vue |
开发语言的支持 | java,javascript | java,javascript |
最后的输出 | 应用 | 代码(前后端,app代码,sql文件) |
部署 | 有选择的部署 | 自定义 |
数据的集成方式 | 提供数据集成套件,包括与Teamcenter、SAP、NX、Camstar、Capital、Polarion等软件平台的集成套件。 | 集成Sharding-JDBC建立数据表生成sql语句 |
是否能开发出复杂的流程和业务逻辑 | 可以(相对于来说还是偏简单了) | 可以 |
布局排列方式 | 提供模板开发,也可以自由拖拽 | 自由拖拽 |
平台的功能应用情况 | Saas应用(微流,微流设计器) | 一种Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发开发模式。(重点这个) |
是否支持手机APP的应用 | 支持手机APP | 支持手机APP |
优点 | 1.一体化设计,全栈开发2.强大的页面生成能力3.不需要专业开发人员也能实现 | 1.技术栈活跃2.Online开发模式功能强大3.设计的功能模块多 |
缺点 | 1.对于安全性有一定的潜在危险2.开发效率相对于来说地下3.个性化开发还是需要前端的同学的参与封装组件的4.对接其他的平台还是有一定的难度的。 | 1.项目结构过于臃肿2.代码不够整洁3.JeecgBoot配置项比较复杂,看的眼花缭乱,让萌新看起来无从入手 |
数据模型/接口/模型驱动 UI | 提供模型驱动体现在业务数据模型、UI模型以及业务逻辑模型三个方面,这三个模型都是可视化 | 可以自定义 |
组件 | 提供1.页面组件2.数据导出组件3.各种功能组件4.也可以自己开发自定义 | 自定义组件 |
采用的设计器 | 逻辑编排-微流设计器 | 表单设计器,流程设计器,大屏设计,报表设计等 |
微流:允许表达应用程序的逻辑,微流可以执行诸如创建和更新对象,显示页面和做出选择等操作。它是一种传统上的最终出现文本程序代码中的视觉方式。
高阶对比
问题/平台 | Mendix | JEECG |
---|---|---|
适用人群 | 经过培训的物业人员+部分程序员 | 懂开发的程序员 |
适用公司 | 中、小型公司偏多,如果要求安全性高的公司不适合,因为不提供源码,所以这也是一个考量的地方 | 大、中、小、型型公司都看可以,政府,银行等需要本地部署的机构都可以 |
二次开发 | 平台不提供源码,个性化开发需要自己的定制开发,而且费用比较高 | 提供源码,方便二次开发 |
模板 | 提供了丰富的模板,可适用模板构建一些简单的系统,如门户这种,比较简单的还是不错的,在一定程度上减少了几层逻辑的构建,降低了工作量 | 系统模板相对来说比较少,而且比较基础,主要还是低代码生成器跟表单设计器 |
数据表配置 | 在配置一些表单的时候,生成了数据表,操作来说相对比较简单,对于业务人员来说经过一定的培训也可以进行操作 | 我们的数据库在online表单中配置,需要对数据库中知识有一定了解的开发人员才配置好,配置又有一定的难度。 |
系统化 | 系统分割版块,可新建独立的系统,集成自己想要的模块,使用起来相对来说清晰明了 | 没有系统化分割,相对数据比较分散 |
数据处理 | 通过前端页面配置一些数据逻辑,安全性不是很高,不过Mendix提供其它相对于来说比较高的安全性配置,到底有多高这个我没办法考量 | 处理一些数据逻辑。如单号等在代码逻辑中处理,逻辑严谨安全 |
系统生态 | 数据也可以找人做定制开发,集成,部署费就相对来说比较高了 | 可独立部署我们自己的系统,可实现不同系统(OA,ERP)数据的完美结合 |
对比小结
mendix提供相对来说更面向于物业人员,开发人员开发好相对应的组件,经过一些基本操作的培训,其实跟微软的powerApps有点类似。不过西门子的这个更强大,可以选择在线开发,也可以选择离线开发,而离线开发的功能比较全。西门子这个软件已经十几年了,有些bug已经修复了,也在用户体验中进行了一个完善。
介绍
Mendix
# Mendix是一个高效的aPaaS环境,建立在现代开放的云原生架构之上,具有可扩展性,可自由部署到几乎所有的基础架构,包括Docker,Kubernetes和Cloud-Foundry。该平台的无状态服务器架构支持按需纵向和横向扩展,而我们的公共云提供自助扩展,默认情况下具有高可用性(HA)。整个平台提供开放性和可扩展性的钩子,从用于自定义模型扩展的客户端和服务器端API到平台API和我们的开源模型SDK,它允许您将Mendix与现有工具(CI/CD和DevOps)集成,并构建脚本来管理、监控和修改应用程序的核心元数据。
# mendix studio pro 其实是一个windows应用,具有mendix全部能力,而网页版的mendix studio网页版的只有部分功能。
比较
# Mendix如何支持模型驱动的开发
模型驱动开发(MDD)已经成为实现快速应用程序开发的主要方法之一。由于MDD使用可视化模型来定义应用程序逻辑、流程流和用户界面,因此MDD使开发人员和业务人员都能够快速构建应用程序,而无需进行劳动密集型的低级编码。因此,它比传统的编程语言(如C#和Java)
要快得多。为了让业务人员积极参与应用程序的设计和开发,我们完全采用了可视化MDD方法。MDD提供了一个优秀的沟通机制来协调业务和IT人员之间的“障碍”,从而确保更高的质量和更成功的结果。
# Mendix如何将模型解释优先于代码生成
Mendix 运行时直接执行模型,这意味着模型实际上是应用程序,而不是中介。与可视化建模设计实际生成代码的方法(例如Java或.NET)不同,Mendix的模型解释方法具有许多独特的特性和优势。
# Mendix如何利用微服务,容器和部署标准化
微服务提供的软件架构最适合小型敏捷DevOps团队。 这种体系结构最能从容器的质量中获益。容器使您能够以自动化的方式在任何云中部署应用程序,并确保质量、可重复性和速度。部署标准化使小型DevOps团队能够处理与操作相关的任何事情。
# 无状态在Mendix中是如何运作的
现代Web规模的应用程序利用无状态体系结构作为支持更大的可伸缩性和弹性的手段。无状态性通过允许根据需要轻松添加额外资源来支持不断增加的用户或处理负载,从而支持水平可伸缩性。每个用户请求和每个事务都可以由任何一个可用的运行时实例来处理。如果您的性能需要您处理更多的事务或用户请求,您可以简单地添加另一个运行时实例来解决部分的流程。由于状态是在运行时之外管理的,因此可以通过更容易地将故障从一个运行时实例转移到另一个运行时实例来提高弹性。
# Mendix提供怎样的开放性和可扩展性
开放性是任何现代应用程序平台的基本架构要求,这意味着该平台应允许应用程序轻松共存,且能利用其他应用程序和应用程序服务。这也意味着平台本身应该适合您的IT环境,并支持您的核心开发流程与标准。
#企业功能和非功能需求极难从纯模型驱动的开发方法中处理,可扩展性对于满足企业应用程序的所有实际功能和非功能需求至关重要。如果模型解释不允许您更改生成的代码,则必须具有扩展性才可行。
JEECG
# JeecgBoot 是一款基于代码生成器的`低代码开发平台`!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot 引领新的低代码开发模式(OnlineCoding-> 代码生成器-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省研发成本,同时又不失灵活性! ----借用官网的一句话。
# 这里我就列举一下它商业版多了的功能进行一个简化
1.Online表单配置
2.Online报表配置
3.Online图表配置
4.完善工作流模块,使用开源流程引擎activiti,遵循BPMN2.0国际标准,具有更稳定、更健壮的工作流性能。
5.表单设计器
6.BPM流程设计器,
7.流程监控,直观的查看流程实例、任务信息,并能对任务进行干预
8.OA办公,常用流程集成:请假、出差、采购、会议等流程设计完成,直接应用;OA系统七大功能模块建立:我的计划、我的日程、待办中心、审批查看、文档中心、通讯录、及时通讯、我的邮箱等
9.移动APP,提供移动开发框架,混合开发技术,已经对接流程相关模块,实现了PC和移动端同步审批操作,可以制作APP
10.提供代码生成器、Online在线开发、Online报表、Online图表 等更多核心模块源码;
11.大屏设计器,类似阿里云DataV,实现在线设计数据大屏与数据可视化效果,支持各种地图、图表、报表等丰富组件;支持二次开发。
#然后就可以看到了它商业版多了大部分功能就是Online配置在线生成,跟设计器。还有移动APP,而移动APP的源码价格是单独卖的。
相关问题回答
Mendix
1.它开发的大致流程。
# 看Mendix测试
2.它的低代码集成,最后的输出。
# 应用程序
3.它的生产,应用部署情况.
# 门迪云 2022年7月21日
#Mendix私有云 2022年8月26日
#SAP业务技术平台(SAP BTP) 2022年8月4日
#其他部署选项 2020年10月26日
4.它的低代码设计器。
# 微流设计器----------------Mendix的逻辑编排的核心思想是把控制颗粒度细化到后端实体属性然后把设计好的微流挂载在前端页面元素的事件上进行触发,
5.对于组件
#1.页面组件
#2.数据导出组件
#3.各种功能组件
6.它的数据模型/接口/模型驱动 UI
# Mendix提供的模型驱动体现在业务数据模型、UI模型以及业务逻辑模型三个方面
这三个模型都是可视化,而且它们既可以作为业务需求说明书,也可以作为设计原型,更能直接编译成最终的应用App。
当业务人员和IT开发人员可以更好地基于同一可视化模型进行协同开发时,显然可以大幅提高沟通效率,减少因需求理解偏差造成的重复修改或者质量问题,并大大缩短开发周期。数据驱动下,越早发现数据的价值,其所产生的业务价值就越高,缩短开发周期是至关重要的。
7.它的拖拽,页面的是采用分列排列,还是自由组合排列,还是模块开发
# 提供模板开发,也可以自由组合排列
8.二次开发支持的语言
# vue,react javasrcipt后端java
9.是否支持手机APP的应用(是那种端的,小程序,还是h5页面,还是app)
#app
10.它这个平台的功能应用情况
# 1、后端开发
- 利用了微流替换了单一的后端的接口逻辑,组件提供后端的实现的逻辑
- 工作流,审批流程,会涉及到不同的角色用户,不同的阶段,审批,而mendix能快速开发该类应用程序。
- 数据模型;支持持久化,非持久化实体。
# 2、前端方面
通过大量前端的组件快速开发页面,并与数据模型关联,可以做到可视化编程。
- 纳米流,前端js处理流程
- 与后端数据模型进行一个绑定
- 可是化编程
- 组件
#3、运维-部署一体化
#4、可多人协作开发
11.这个平台的体验流畅性
# 比较流畅有时候一定的时间加载
12.授权情况,是否支持部分源码的购买
# 不开源,需要购买平台。
13.数据的集成方式
# 数据驱动需要去实现软件世界及物理世界的各个系统或设备的数据集成。
#Mendix提供了丰富的数据集成套件,包括与Teamcenter、SAP、NX、Camstar、Capital、Polarion等软件平台的集成套件(还在不断增加中),这些套件可以在权限控制下实现对目标集成平台各种数据的任何操作。
14.是否能开发出复杂的流程和业务逻辑
# 可以(相对于其他平台来说还算复杂,但是相对于来说业务流程还不是很复杂)
15.优点与缺点
# 优点:
一体化设计,全栈开发,以数据模型为驱动,可以适用简单页面的开发场景。
强大的 页面生成能力,支持手机,平板,并且提供大量的组件,绑定数据模型,以及前端组件,快速开发页面输出,完全不需要前端同学的开发页面了。只需要前端的同学封装好相应的组件,然后业务人员进行一个简单的培训就可以实现页面的生成应。
调试一体化,对于前端的开发同学,无需要等待后端接口,对于后端的同学,可以快速生成页面调试
部署运维,支持一键部署mendix cloud,当然还支持其它的平台。
# 缺点:
不是专门的为发开同学设计的低代码平台,更多的是倾向于没有开发经验的业务同学,提供开发的能力
实际页面,接口逻辑,也就是所谓的微流建模,其实并没有那么好用,开发效率比较低下,服务化,对接其他的平台都很难。因为都需要一个组件化的开发。
# 建议:
对于简单的页面的开发,是没有什么问题的,对于后端的简单的增删改查,也是完全没有问题的。
大量的组件都是直接和领域模型数据绑定在一起的。当然的这个也是后面的能够优化的点。
JEECG
1.它开发的大致流程。
# 看JEECG测试
2.它的低代码集成,最后的输出。
# 代码(前后端,app代码,sql文件)
3.它的生产,应用部署情况
# 采用nginx+tomcat部署方案
# 后端服务发布到tomcat中
# 前端部署到nginx中
4.它的低代码设计器。
#流程设计器,表单设计器, BPM流程设计器,大屏设计器。
5.对于组件
# 自定义组件
6.它的数据模型/接口/模型驱动 UI
# 可以自定义
7.它的拖拽,页面的是采用分列排列,还是自由组合排列,还是模块开发
# 自由组合排列
8.二次开发支持的语言
# javasrcipt,vue,java
9.是否支持手机APP的应用(是那种端的,小程序,还是h5页面,还是app)
# 购买源码,框架为uniapp.可以打包生成小程序,h5页面,app
10.它这个平台的功能应用情况
# 一种Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发开发模式。(重点这个)
11.这个平台的体验流畅性
# 流畅
12.授权情况,是否支持部分源码的购买
# 不支持拆分卖,需要整套购买。
13.数据的集成方式
#集成Sharding-JDBC建立数据表生成sql语句
14.是否能开发出复杂的流程和业务逻辑
# 可以,由开发员进行开发
15.优点与缺点
#优点:
# 技术栈活跃
平台使用的技术基本都是Java领域当下最活跃的框架,各种文档资料很多,学习曲线低,二次开发几乎无技术壁垒。
#Online开发模块功能强大
Online开发模块涉及表单、报表、图表、图表组合等功能,同时配合平台的表单设计、流程设计、大屏设计等功能,几乎可以无代码实现企业应用的常见功能。
ps:我也让我们的产品经理尝试使用Online模块去完成某系统基础数据的开发,实际效果也证实了它的功能强大。当然部分功能是要商业版才有的。
#缺点
# 项目结构过于臃肿
使用低代码平台的用户的大多数需求是快速成型中小型系统,而当前Jeecg_boot的项目结构,system子模块过于臃肿
#代码不够整洁
作为一个代码洁癖着,看到Jeecg_boot代码中充斥的代码警告总觉的有些不适。
#配置比较复杂
JeecgBoot配置项比较复杂,看的眼花缭乱,让萌新看起来无从入手
总结
经过查阅资料,跟使用大致的开发流程,给我的一种感受是这样的。两款平台都有相似的地方,比如说都是为了减少代码,通过组件化,进行一个快速开发,也做了内置生成,但产物不同,一个是可以完整运行的程序(Mendix),一个是生成代码,前端后端sql语句(JEECG),给我一种看法就是它们面向的人群是不一样的,Mendix倾向于物业人员,不懂开发的也可以进行一个开发,JEECG更倾向于java开发工程师,或者说偏向于全栈开发工程师,为什么说java开发工程师呢,因为你会发现online在线开发,那种配置,跟生成的代码,就是倾向于java工程师来使用的,前端生成个前端的代码,可能还没有人家去组件库拿开源的组件来使用的比较快呢。如果说JEECG想要更深入的了解,那还得叫一个拥有并且熟悉java开发的同学来进行一个使用分析源码。而且我们这边已经跑起来开源项目来了,但是支持个登陆跳转,其他页面的跳转有点问题,后端的问题,想要解决一下。经过体验Mendix,生产如果说封装好了需求组件,确实不需要写什么代码,物业人员经过培训也能进行一个开发使用。不过给我的一种感受,每次都要点击保存运行,页面才会发生变化,也就是说没有一个热更新。而JEECG是设计器确实挺强大的,功能多,流程复杂。--------------当然这只是我的个人看法。