一、架构方面
Mendix作为高效的aPaaS环境,建立在现代的开源云原生架构之上,具有很好的可伸缩性,能够自由地部署到各类虚拟化基础设施中,像Docker、Kubernetes、Cloud - Foundry等。其采用无状态服务架构,这种架构可按需进行垂直和水平伸缩,并且默认的Mendix公有云自身也提供高可用伸缩服务。同时,它开放且可扩展,支持跨平台,从自定义模型扩展的客户端、服务端接口到平台接口及所用的开源ModelSDK都支持跨平台,从而可以将Mendix与已有的工具(如CI/CD及DevOps)进行集成、构建脚本以管理、监控及修改应用的核心元素。
二、开发模式
(一)模型驱动开发模式(MDD)
- 特点
-
这是一种进行快速开发的领先方法,使用可视化模型定义应用逻辑、业务流程及用户接口。它使得开发者和业务用户可以不需要密集劳动力资源而采用低代码快速构建应用,相比传统的编程语言(如C#、Java等)开发速度快得多。为了让业务用户积极参与到应用的设计开发过程中,Mendix完全采用了可视化的模型驱动的开发方法。
-
这种模式提供了优秀的沟通机制,使得业务和IT相关人员能够协调一致,从而确保更高的质量和更成功的产出。Mendix运行时(MendixRuntime)直接执行模型,这意味着模型是应用的语义化而不是媒介化,不同于借助可视化模型设计工具生成代码(例如Java或.NET)的方法,Mendix的模型解析方法独具优势。
-
三、微服务相关
- 优势
- 微服务是一种适合敏捷DevOps团队最佳的软件架构,能最好地从容器的质量获取收益。容器使得应用可以以自动化的方式部署到云端,并且保证高质量、可重复性、高速度。部署的标准化使小规模DevOps团队处理相关运维成为可能。
- 无状态支持在需要时允许增加资源的水平扩展以满足用户和业务负载的需要,用户的每个请求和交易可以被可用的任一实例所处理。如果因性能需要处理更多的交易或用户请求,简单地增加额外的运行实例即可处理。对于状态的管理在运行时(runtime)之外,当失效的转移给可用的时,相应地也增加了应用的弹性。
四、平台组成部分
- 开发者门户(DeveloperPortal)
- Mendix平台由高级的开发者门户组成,可以进行应用的资源管理、需求收集、监控和运维,也提供桌面和web的可视化建模环境。
- 应用市场(Marketplace)
- 还提供综合多样的应用市场,其中囊括数千种可用的组件和部件以加速开发。
- 还提供综合多样的应用市场,其中囊括数千种可用的组件和部件以加速开发。
五、开发教程示例
(以创建增删改查页面为例)
- 建立实体
- 在项目导航栏中右键 - addmodules新增一个模块,默认会生成一个DomainModel文件夹存放项目中用到的实体对象和一个Security权限配置页面。以创建Student对象为例,双击DomainModel菜单,在右侧主面板中的Entity存放页面点击addEntity并拖到页面中增加Student对象,勾选右侧四个系统默认属性,然后增加Id/name/gender/course属性。其中id属性类型选autoNumber(默认String),name及course属性类型选String,长度默认200,gender属性选枚举类型Enumeration并新增Gender枚举类型,设置male和female两个参数值,最后点ok保存实体创建。
- 新增页面
- 在新建的模块上右击选择add - page新增一个页面,选择一个页面显示模板建立一个空的页面。在页面上拖入一个datagrid表格,双击其上方的unknow行点开属性并在Entity那里选择之前创建的Student实体对象,确认后若提示新增和编辑按钮没有指定具体内容的报错,可通过在new或者Edit按钮右键选择generateapage自动生成一个编辑页面来解决。
- 权限配置
- 先配置模块级别权限,点击module中的security页面新加一个角色tester,在相关tab页面中勾选这个角色(目前只需要勾选Page页面权限,及Entity那个tab中建立新增的Student实体并勾选tester属性)。然后配置项目级别权限,点击项目下面的security页面,编辑administrator属性将新建的tester角色勾选上,或者直接新增一个角色加入tester也可以。
- 页面运行登录
- 将新增的page页面挂到导航页面:打开项目下面navigation页面,新建Item(即模块菜单名),并编辑指定onclick属性为打开之前模块新增的page页面。若控制台没有显示报错即可运行,点击开发面板上方runLocally在电脑上运行,在浏览器打开页面中就可以看到自己新建的模块(Item菜单),打开就是一个增删改查页面及查询结果列表。
六、Mendix的目标与优势
- 目标
- 以低于70%的资源10倍速构建应用程序,可以赋能业务及IT协同、敏捷驱动的开发平台、单键部署至任何云、AI辅助开发、解锁数据价值、延伸系统功能。
- 开发工具
- Mendix提供了两种开发工具,MendixStudio适合企业业务人员和开发爱好者(公民开发者);MendixStudioPro可以由专业开发人员使用,并且能够使用所有扩展组建,包括Mendix提供的组件,开源社区提供的组件以及公司私有的组件,还可以结合JavaAction开发具有个性化创新的应用。
- Mendix提供了两种开发工具,MendixStudio适合企业业务人员和开发爱好者(公民开发者);MendixStudioPro可以由专业开发人员使用,并且能够使用所有扩展组建,包括Mendix提供的组件,开源社区提供的组件以及公司私有的组件,还可以结合JavaAction开发具有个性化创新的应用。