Skip to main content

Deprecated features and alternatives

note

This is a preview version of the User Interface Extensibility Framework v2.0. We may have not identified all missing features and this list may not be comprehensive.

The User Interface Extensibility Framework 2.0 introduces significant architectural changes from previous versions. Notably, certain v1 interfaces are no longer available—some have been replaced with alternative implementations, while others have been deprecated entirely. This document outlines the key differences, available alternatives, and deprecated functionality.

API v2 targets execution in a modern, sandboxed browser environment. As a result, certain legacy client APIs and platform features (e.g. ActiveX, COM) are no longer permitted. Where possible, we provide supported alternatives.

UIX Interface Alternatives

The following table lists UIX 1.0 interfaces that are not available in version 2.0, along with their recommended alternatives.

UIX 1.0 InterfaceAlternative in v2.0
CommandLocation_TaskPaneUse CommandLocation enum value TaskBar with the ICommands interface. See Taskbar Commands for samples on working with TaskBar.
IShellFrame.ITaskPaneUse ICommands interface. See Taskbar Commands for samples on working with TaskBar.
ITaskPane.Available/VisibleTaskbar is available starting from version 25.10.15296.9. For backwards compatibility check whether the CommandLocation enumeration value TaskBar is available. This enumeration value was added with TaskBar. The TaskBar is always visible.
ITaskPane.CreateGroupUse CreateTaskbarGroup in the ICommands interface for creating groups in the Taskbar.
TaskPane.AddCustomCommandToGroupUse AddCustomCommandToMenu in the ICommands interface. Here is an example on how to add commands to a custom taskbar command group.
ICommands.SetIconFromPathUse SetIcon or SetTaskbarGroupIcon for setting icons for commands or Taskbar groups.
ICommonFunctions.ExecuteURLUse OpenExternalWebLink.
ICommonFunction.ReadTextFileVAF (Vault Application Framework) can be used as a workaround.
IDashboard.VaultUse IDashboard's reference to ShellFrame, which provides access to ShellUI which then has access to Vault.
MFiles.CreateInstanceUse the new keyword for creating M-Files API objects. E.g.const objVer = new MFiles.ObjVer();
SessionInfo.ClientCultureUse GetClientLocale.

Vault API Alternatives

The following table lists Vault API methods that are not directly available in version 2.0, along with their recommended alternatives.

Vault API MethodAlternative in v2.0
ClassOperations.GetObjectClassUse GetObjectClassesAndGroups.
ClassOperations.GetObjectClassIDByAliasUse GetMetadataStructureItemIdByAlias.
ObjectFileOperations.AddEmptyFile / AddFileUse AddObjectFile as a workaround. The original method expected a source path, which is insecure. Create file content (e.g., via drag-and-drop) and use AddObjectFile. Currently supported only for objects in the current listing.
ObjectOperations.CheckInUse CheckInMultiple.
ObjectOperations.CheckOutUse CheckOutMultiple.
ObjectOperations.CreateNewObjectUse AddObjectWithFiles.
ObjectOperations.CreateNewObjectExUse AddObjectWithFiles.
ObjectOperations.GetLatestObjectVersionAndPropertiesUse GetObjectDataOfMultipleObjects.
ObjectOperations.GetMFilesURLForObjectUse GetWebLink.
ObjectOperations.GetObjectInfoUse GetObjectDataOfMultipleObjects with the required OBJECTDATAREQUESTFLAGS.
ObjectOperations.GetObjectPermissionsUse GetEffectivePermissions.
ObjectOperations.IsObjectCheckedOutUse GetObjectDataOfMultipleObjects with the object_version flag. The return value(s)'s ObjVer's ObjVerVersion contains ObjVerVersionType.
ObjectPropertyOperations.SetPropertyUse SetPropertiesMultiple.
ObjectSearchOperations.SearchForObjectsByConditionsUse SearchObjects.
ObjectSearchOperations.SearchForObjectsByConditionsExUse SearchObjects.
ObjectTypeOperations.GetObjectTypeIDByAliasUse GetMetadataStructureItemIdByAlias.
IObjectVersionPermissions.AccessControlListUse GetEffectivePermissions.
PropertyDefOperations.GetPropertyDefIDByAliasUse GetMetadataStructureItemIdByAlias.
UserGroupOperations.GetUserGroupIDByAliasUse GetMetadataStructureItemIdByAlias.
IValueListItem.GetIconAsPNGUse GetValueListItemIconURL.
ValueListItemOperations.GetValueListItemByIDUse SearchValueListItemsWithPermissions.
WorkflowOperations.GetWorkflowIDByAliasUse GetMetadataStructureItemIdByAlias.
WorkflowOperations.GetWorkflowStateIDByAliasUse GetMetadataStructureItemIdByAlias.

Deprecated Features

The following features from version 1.0 are deprecated and will not be supported in the new framework.

FeatureNotes
IShellUI.CreatePersistentBrowserContentNot supported in the new framework.

Unsupported Environment Features

Due UIXv2 applications running in web-based environment, the following features and objects are not directly supported.

Browser APIs

FeatureReason
window.open()Requires allow-popups iframe sandbox attribute
window.alert()Requires allow-modals iframe sandbox attribute
window.prompt()Requires allow-modals iframe sandbox attribute
parentUsage restricted by browser security
documentSandboxed application can access its own DOM, but not the parent's
msFullscreenElementMicrosoft-specific Legacy API not available.
navigator.msSaveOrOpenBlobMicrosoft-specific Legacy API not available.
Enabling Sandbox Attributes

Some browser APIs like window.open(), window.alert(), and window.prompt() can be enabled by configuring sandbox attributes in your application manifest. See the Sandbox Attributes Support sample for details on how to configure allow-popups, allow-modals, and other sandbox permissions for your UIXv2 application.

ActiveX and COM Objects

UIXv2 applications execute within sandboxed iframes in modern browser execution environment, which enforce strict security boundaries. Unlike the legacy Internet Explorer environment—where web applications could instantiate COM objects and run with near-native privileges—modern browsers isolate JavaScript execution and explicitly block access to native OS APIs.

Why these objects cannot work:

  • Browser sandbox isolation: Modern browsers enforce strict process isolation. JavaScript running in an iframe cannot escape the sandbox to invoke native OS APIs, spawn processes, or access the Windows registry.
  • No ActiveXObject API: The new ActiveXObject() constructor was an IE-specific extension, never part of web standards. No modern browser implements it.
  • Cross-origin security model: Sandboxed iframes operate under Same-Origin Policy and Content Security Policy (CSP), blocking calls to local resources.
  • No in-process COM hosting: ActiveX controls ran in-process with IE, sharing its memory space. Modern browsers isolate renderer processes and block loading arbitrary native DLLs.

The following ActiveX and COM-based objects are not supported:

ObjectOriginal PurposeWhy It's Blocked
ActiveXObjectInstantiate COM objects from JavaScriptIE-specific API; not implemented in any modern browser
WScript.ShellExecute programs, manipulate registry, create shortcutsRequires direct OS access; would allow arbitrary code execution
Microsoft.XMLDOMParse and manipulate XML documentsIE-specific; replaced by native DOMParser and XMLSerializer APIs
Outlook.ApplicationCompose emails, access calendar and contactsRequires COM automation of Outlook process; major security risk
Scripting.FileSystemObjectRead/write local files and foldersDirect filesystem access violates browser sandbox model
Shell.ApplicationWindows Shell operations (browse folders, invoke verbs)Requires native Windows Shell integration
SenchaToolbox.ToolboxM-Files proprietary IE integrationRelied on IE plugin architecture (NPAPI/ActiveX)
MFilesAPI.MFilesClientApplicationDirect access to M-Files COM APIRequires in-process COM instantiation on client machine

Migration Alternatives

Deprecated FunctionalityModern Replacement
XML parsing (Microsoft.XMLDOM)Native DOMParser, fetch() with XML response
File operations (Scripting.FileSystemObject)File System Access API (with user permission), or server-side processing via VAF
Email composition (Outlook.Application)mailto: links, or server-side email APIs (Microsoft Graph API, SMTP)
Shell operations (Shell.Application, WScript.Shell)Server-side automation via VAF, or companion desktop application
M-Files client access (MFilesAPI.MFilesClientApplication)gRPC API or UIXv2 methods
tip

For functionality previously provided by COM or ActiveX, consider using server-side implementations via the Vault Application Framework (VAF).