The User Interface Extensibility Framework (UIX) was created to allow developers to build client-side applications that interact with the M-Files Desktop and M-Files Web Access. User Interface Extensibility Framework applications are a combination of a number of text files (one application definition file, one or more modules, and zero or more dashboards. These are executed on the M-Files Desktop client or within the M-Files Web Access and are used to extend the client-side functionality of the core software.

A technical reference website is available which provides detailed information such as interface members. This website focuses instead on the practicalities of developing applications using the UIX.

Use cases

The User Interface Extensibility Framework is used to develop additional client-side functionality. This may include:

  • Buttons in the Task Area that perform common, or complex routines.
  • Context-menu items that allow custom processing for selected objects.
  • Display of dashboards that contain custom user interfaces. These user interfaces may be context-sensitive, such as showing a burndown chart for a project when the project is selected in M-Files.

Development practices

Developing User Interface Extensibility Framework applications uses a different set of technologies and approaches compared to server-side development such as VBScript or the Vault Application Framework.

Samples and tutorials

Various samples are available within our Samples and Libraries User Interface Extensibility Framework section.

Application structure

User Interface Extensibility Framework applications consist of a number of files deployed in a .zip or .mfappx package (an .mfappx package is simply a renamed zip file and is used to easily identify deployable M-Files applications). The package must have one Application manifest (appdef.xml) file, one or more modules, and may also contain one or more dashboards, and their supporting files.

The main file types contained within a User Interface Extensibility Framework application are:

Application definition file (appdef.xml)

The application definition/manifest file contains information that the M-Files server uses to register and execute your application, such as the unique identifier for the application (its GUID), publisher information, information on the platforms it targets (desktop or web), and the modules and dashboards that make up the application itself.

More information on the application definition/manifest file is available in the dedicated page.

Modules (.js files)

These modules contain the application code. There are three types of module: VaultCore modules, VaultUI modules, and ShellUI modules. Most modules are ShellUI modules.

More information on modules is available in the dedicated page.

Dashboards (.js, .css, .html files)

Dashboards are user interfaces that are shown to the user, either when the module starts or on an associated event (e.g. an object of a specific type is selected).

More information on dashboards file is available in the dedicated page.