Extensibility

如何扩展 Mendix 平台的功能?

Mendix Runtime 可以通过多种不同方式进行扩展。以下各节详细介绍了如何通过 Mendix 连接器套件、Java 操作、JavaScript 小组件、Java 请求处理程序和数据存储进行扩展。

Java 操作和连接器套件

Java 操作使您能够创建可在任何微流中使用的可重用微流活动。您可以创建应用程序特定的 Java 操作,也可以将它们捆绑在模块中,以便在其他项目中或由其他开发人员重复使用这些操纵。

Java 操作通常用于与外部系统集成(因此称为“连接器”),但并不仅限于集成用例。实际上,您可以在 Java 中随心所欲的进行创造,包括可以随意使用大多数现有的(开放源代码)Java 库。您可以创造所需要的任何类型的功能插件。

为了确保您的团队成员甚至外部用户可以轻松使用自定义 Java 操作,我们已经将其完全集成到 Mendix Studio Pro 中的微流编辑器体验中。其他 Mendix 开发人员也无法区分标准微流活动和自定义 Java 操作。

以下图片取自 Mendix Studio Pro 操作方法中的如何使用 Mendix 连接器套件构建微流操作一节中的示例。如您所见,列表中的 Join 对象的自定义操作看起来像任何其他微流活动一样,带有图标和用户友好的参数:

您可以在微流工具箱中使用所有自定义 Java 操作,从而让非技术 Mendix 用户对工具的探索和使用变得更加简单。实际上,用户只需将活动从工具箱拖到他们的微流中即可,他们甚至不知道这一操作实际上是由自定义 Java 操作实现的。如果要在工具箱中显示 Java 操作,只需选择 Expose as microflow action 复选框,如以下视频所示:

在执行 Java 操作中,您可以使用 Mendix Runtime API 在 Mendix 对象和 Java 代码之间建立紧密的集成。

可插入小组件

您可以基于 JavaScript 或 TypeScript 构建自定义小组件来扩展 Mendix 应用程序的前端。有关更多信息,请参见前端中的可插入小组件

可插入操作

在创建自定义应用程序逻辑方面,Mendix 帮助开发人员构建自定义纳流操作。这些可插入纳流操作(在 Studio Pro 中称为 JavaScript 操作)可用于利用设备功能或在客户端中执行任何类型的逻辑。有关更多信息,请参见前端中的可插入纳流操作

Java 请求处理程序

Java Request Handler API 使您能够用 Java 创建自定义 HTTP 端点执行。请求处理程序基本上是一种 Java 方法,该方法接收 HTTP 请求,使用输入,然后将响应发送给调用方。这在许多情况下很有用,例如自定义身份验证、进入特定页面的深层链接以及自定义协议执行。请求处理程序的执行不仅限于 Java,因为您可以根据 Java 的执行方法运行 Mendix 微流和活动。

需要注意的是,随着本地 REST 发布的可用性,对自定义 Java 请求处理程序的需求已大大减少。

数据存储

Mendix 支持的所有查询语言都可以通过 Java API 使用。包括 XPath、OQL 和 SQL:

XPath 和 OQL 都是普遍适用的,这意味着无论您使用什么数据库,它们的操作都是相同的。SQL 支持使用您所选数据库的所有功能。如使用特定数据库的索引来提高查询的性能的应用场景就可以这样操作。

您可以使用 Mendix Java API 为您所有的实体注册实体事件侦听器。这可用于提取审核信息或将所有数据更改实时导出到外部系统中。

有关更多信息,请参见下面的 Mendix 文档:

如何为第三方服务提供可重用连接器?

通用连接器可以轻松地与其他开发人员和公司共享。您可以从 Mendix Studio 和 Mendix Studio Pro 导出连接器模块,然后将其导入到其他 Mendix 应用程序项目中。连接器模块也可以上传到 Mendix Marketplace,可以是任何都可用的 Public Marketplace,也可以是只有公司中的开发人员才能重用的属于您公司的 Private Marketplace。有关更多信息,请参见 Mendix 开发人员门户指南中的如何分享 Marketplace 内容

连接器包含了您在使用过程中需要的所有内容,如微流活动、逻辑、域模型、Java 代码和任何必需的 Java 库。连接器的用户看不到这种复杂性。他们只需将您的自定义微流活动从工具箱拖动到任何微流程中,即可使用您的连接器。

以下为连接器的一个示例。

Mendix 集成了哪些工具?

Mendix 可以无缝集成开发人员使用的许多工具:

  • 在 Mendix Studio 和 Mendix Studio Pro 中选择 Deploy for Eclipse,您的 Mendix 应用程序项目将与 Eclipse 兼容,这意味着您可以从 Eclipse 运行和调试应用程序。您还可以访问 Java 源代码,从而执行自定义 Java 操作。有关更多信息,请参见 Mendix Studio Pro 指南中的使用 EclipseMendix Studio Pro 操作方法中的如何调试 Java 操作
  • 很多 Mendix 开发人员会使用 IntelliJ IDEA。IntelliJ 使您能够导入 Eclipse 项目,因此在 Mendix Studio 和 Mendix Studio Pro 中选择 Deploy for Eclipse,您还可以在 IntelliJ 中进行所有自定义 Java 操作的编码。
  • 小组件开发人员可以从构建可插入小组件获得很大帮助。

Mendix 支持哪些开放标准?

Mendix 采用强有力的开放标准,以支持平台和基于平台构建的应用程序之间的无缝集成,并支持设计工件的交换。

以下为 Mendix 平台中使用的开放标准和技术的简要概述:

  • 应用程序数据可以存储在许多主流关系数据库管理系统中。Mendix 使用 SQL 标准定义和处理您的域模型和数据。多年来,SQL 已经被证实为一种灵活的、多用途且面向未来的数据语言。到现在,甚至 NoSQL 数据库都将 SQL 作为检索数据的默认方式。
  • Mendix Runtime 使用 Scala 和 Java 来执行,并且在 Java 虚拟机 (JVM) 上运行。与 SQL 类似,JVM 也提供了一个灵活的、多用途且面向未来的平台。Java 使我们能够在大量系统和云平台上运行 Mendix 平台。JVM 运行时可灵活地用于多种编程语言。这样可以将如 Java 一样的经过验证的语言与如 Scala 一样的创新语言的功能结合在一起。
  • Mendix 提供对许多集成相关的开放标准的支持,包括 Web 服务、SOAP、WSDL、XML Schema、REST、JSON、Swagger、OpenAPI 和 OData。
  • 对于前端,Mendix 支持许多开放标准以及实际标准,例如使用 HTML5、CSS3 和 React 呈现的网页。
  • Mendix 通过敏捷方法论采用了软件创新管理的最佳实践。Mendix 平台提供了最常用的敏捷方法 – Scrum 方法所需的工具,因此您可以管理您的 Mendix 应用程序项目。
  • 对于托管,Mendix 采用了开放式和实际托管技术,例如 Linux、Docker、Kubernetes 和 Cloud Foundry。