重用 Mendix 应用程序模型组件 | Mendix 评估指南

Skip navigation

Component Reuse

Mendix 如何实现组件重用?

构建多个应用程序时要考虑的一个重要方面是,是否能跨应用重用应用程序模型的组件。Mendix 平台可在单个应用程序内或多个应用程序间的不同级别上实现这种重用。这使您可以实现以下目标:

  • 在应用程序环境中创建一致性 – 重用 UI 元素、逻辑和数据以确保应用程序外观和行为保持一致。这既能提高应用程序的可用性,又能确保信息的正确性。
  • 提高生产力 – 可重用性意味着您可以在多个位置重用经验证的组件,从而减少实现和测试类似行为的时间。

以下各节将讨论 Mendix 平台针对应用程序模型的不同方面提供的重用选项。

如何在 Mendix 应用程序中重用组件?

在 UI、逻辑和数据中可能会出现跨应用程序重用。了解详细信息,请深入以下各节。

  • 用户界面

    UI 重用分为组件和样式、集中式主题以及引用来自其他应用程序的用户流。

  • 组件和样式

    在 Mendix Atlas UI 框架下,开发人员可以通过重用快速构建一致的用户界面,同时维持对每个应用程序的控制以及保持应用本身的灵活性。通过 Atlas UI 可以创建将可重用元素、模板和主题组合在一起的 UI 资源包,以反映公司的品牌准则。

    Atlas UI 的基本理念是,设计师可以创建一种公司设计语言,实现开发人员可以轻松重用的最佳实践。由于设计人员只需设计一次 UI 组件,而开发人员能专注构建功能,他们的工作效率都能因此得到提高。Mendix 平台使用了数个概念来创建外观一致的应用程序,这些应用程序可以封装在 UI 资源包中。有关这些概念的解释,请参见 UI 设计

    您可以通过 Mendix Private Marketplace 共享您的 UI 资源或将它们集成到公司的入门应用程序中,以便其他开发人员在启动新的应用程序项目时可以快速重用此设计语言。这有助于提高开发速度并帮助创建跨应用程序的一致性。设计语言的新更新可以通过贵公司的 Private Marketplace 轻松发布。

    可以扩展每个应用程序的设计语言,以便在保持一致性的同时实现对外观的完全控制。开发人员可以扩展 SASS 文件,以包含具有特定布局、页面模板、构建基块和设计属性的特定于应用程序的样式。

  • 集中式主题化

    除此之外,还可以通过引用集中托管的主题在应用程序之间共享主题。通过将主题托管在中央 Mendix 应用程序或内容交付网络 (CDN) 中,您的公司可以对应用于多个应用程序的一个位置进行更改。还可以将中心主题与特定于应用程序的主题相结合,从而提供重用和控制功能。

  • 引用来自其他应用程序的用户流

    Mendix 支持从一个应用程序到另一个应用程序的深度链接。反过来,这使开发人员能够分别开发可从其他应用程序重用的用户交互流。

    另一个好处是可以通过单点登录 (SSO) 技术如 SAMLOAuthOpenID Connect 自动登录用户。

  • 逻辑

    对于跨不同应用程序重用逻辑,有几种不同的方法:

    • 将您的逻辑放在中心位置 – 在不同应用程序之间重用逻辑的最佳方法是:将其分发到所有的应用程序中。这可以通过 Web 服务或 REST API 公开微流逻辑来实现。
    • 导出&导入应用程序模块 – 此方法类似于在传统开发平台中使用库。除了逻辑,模块还可以包含可重用数据和 UI 组件。Mendix Marketplace 使您可以将模块发布到中央存储库中,方便其他开发人员重用。
    • 通过模块重用第三方 Java 库 – 使用此方法,可以在模块中纳入基于 Java 的微流操作以及所需的任何 Java 库。这使您可以轻松地在 Mendix 应用程序中重用各种 Java 库,而无需通过模块从开发人员那里获取任何 Java 知识。

    所有这些方法都具备只需进行一次逻辑实现和测试的优点,这有助于提高生产效率和一致性。

  • 数据

    使用哪种跨不同应用程序重用数据模型的方法取决于您的需求。有时您只需要重用模型,但每个应用程序都会拥有自己的数据。或者,除了跨应用程序重用实际数据之外,还可能需要重用模型。

    Mendix 支持跨应用程序重用数据模型和实际数据:

      • 重用数据模型,同时在每个应用程序中保留不同的数据 – 为此,您可以在模块中导出域模型,如上面逻辑中所述的导出&导入应用模块。
      • 重用数据模型和数据 – 为此,在中央应用程序中创建 API 是一个更好方法。而这可以通过 Web、REST、OData 服务实现

    • 与原有系统共享数据时,Web 服务是一个不错选择。REST 和 OData 服务都具有以下优势:通过对数据定义标准操作,更适合共享数据。REST 使您能够与其他 Mendix 应用程序以及大多数其他现代应用程序开发平台共享数据。OData 的另一好处是,它作为一种在商业智能和报告工具中重用数据的方法,很受支持。

如何在 Mendix 应用程序中重用组件?

如下各节所示,在 UI、逻辑和数据中也可能会出现应用程序重用。

  • 用户界面

    Mendix 基于几种概念应用了基于 UI 组件的方法,以支持应用程序内的重用,同时仍可实现每个用例的可扩展性。有关这些概念的更多信息,请参见 UI 设计

    Mendix 提供了可用作引用的布局和片段,这意味着如果布局或片段发生更改,则此更改将在项目中全局传播。此工作流程可优化重用性,但在某些情况下,如果故意对应用程序的某些页面或部分进行不同的设计,则不建议传播更改。为了支持这些用例,Mendix 还提供了页面模板和模板方法的构建块。这些模板可作为设计灵感,同时通过提供已创建的应用程序页面(或部分)来帮助提高生产率。使用模板后,更改仅应用于该位置,因此在开发过程中可以避免不可预见的副作用。

    使用布局、片段和模板的这种组合使开发人员能够全局引用和更新,同时还能使其在应用程序项目中自由地进行本地更改。

  • 逻辑

    要在应用程序中重用部分逻辑,可以使用以下方法:

    • 将可重复使用的步骤从一个微流中提取到新的微流中 – 这种提取就像选择要重用的动作和输入新微流名称一样容易。在原始微流中,旧步骤将自动替换为对新微流的调用。提取新微流时,Mendix 将自动确定新微流需要的参数。
    • 使用 Java 操作创建新的微流活动 – 在定义一个新的 Java 操作并用常规 Java 开发环境编写实现之后,您可以在任何微流中使用该活动。您可以提供一个易于理解的名称、类别和图标,这些名称、类别和图标将在 Mendix Studio Pro 的微流编辑器工具箱中使用。其他用户不会看到使用 Mendix 提供的活动和自定义活动之间的任何区别,这意味着重用自定义活动没有学习曲线。
  • 数据

    Mendix 域模型允许通过继承的方式重用类似实体的实体定义。这意味着您可以一次定义需要在多个实体上定义的属性,然后在另一个实体中继承这些属性。当继承属性的实体是原始实体的特殊化时(例如,送货地址实体和帐单地址实体都可以从通用地址实体中集成),这种方式最有效。