Feature Compatibility Matrix

Feature Version 1.0 Version 2.0 Version 2.1
Automatic State Transitions Yes Yes Yes
Background Operations Yes Yes Yes
Configuration Yes* Yes* Yes*
Configuration commands and buttons - - Yes
Event Handlers Yes Yes Yes
File helpers - Yes Yes
Licensing - Yes Yes
ObjVerEx Yes Yes Yes
Property Calculation Yes Yes Yes
Property Validation Yes Yes Yes
Search helpers Yes Yes Yes
System helpers Yes Yes Yes
Url helpers - Yes Yes
Vault Extension Methods Yes Yes Yes
Workflow Pre- and Post-Conditions Yes Yes Yes
Workflow State Actions Yes Yes Yes

Version 2.1

Version 2.1 of the Vault Application Framework is compatible with M-Files 19.9 upwards. To target earlier versions of M-Files, please use an earlier version of the Vault Application Framework.

Alongside numerous internal bugfixes and performance work, this release brings four new major features:

In addition, please note that there are two changes in method signatures from version 2.0. Both of these changes are implemented to work around situations where code attempts to start background operations when the vault may not yet be fully operational:

  • BackgroundOperationManager.StartRecurringBackgroundOperation now returns a Task<BackgroundOperation>, a change from BackgroundOperation in VAF 2.0.
  • BackgroundOperationManager.RunOnce now returns a Task, a change from void in VAF 2.0.

Version 2.0

Version 2.0 of the Vault Application Framework is compatible with M-Files 2015.3 upwards. Please see the note below regarding configuration compatibility with M-Files 2015.3.

Alongside numerous internal bugfixes and performance work, this release brings two new major features:

Configuration compatibility

Version 2.0 of the Vault Application Framework introduces a new pattern for exposing application-specific configuration into the M-Files 2018 Admin interface. As M-Files 2015.3 (and earlier) do not contain this section within the M-Files Admin interface, it is recommended that the earlier configuration approach (which continues to work in Version 2.0) is used for compatibility with M-Files 2015.3 systems.

Version 2.1 of the Vault Application Framework extends this configuration ability, allowing developers to instruct the user interface to mask values that are entered (e.g. passwords), to restrict sections of configuration so that only server administrators (not vault administrators) can change the values, and to add buttons to the dashboard which run server-side code.

Version 1.0

Version 1.0 of the Vault Application Framework was released in early 2016. This release included a wide variety of functionality, including:

M-Files have published to partners a Visual Studio 2015/2017 template for use when creating VAF 1.0 applications.

Name-Value Storage Configuration

The initial release of the framework supported configuration attributes that were used to mark up configuration objects used by each application. These configuration objects were serialised into Name-Value storage, and the Name-Value Storage Manager could be used to alter them at runtime.

The 2.0 release of the framework introduced another approach which integrates with the new configuration administration interface in M-Files 2018. It is recommended that applications that target M-Files 2018 and upwards migrate to the new version.

M-Files have published to partners a Visual Studio 2015/2017 template for use when creating VAF 1.0 applications.

Upgrading versions

When you upgrade the Vault Application Framework you may need to make some small changes due to changes in class namespaces or method signatures.

From Version 2.0 to Version 2.1

New VAF 2.1 applications can be created using the M-Files Online Visual Studio template. Projects using the existing Vault Application Framework 2.0 template need to be manually upgraded to use the Vault Application Framework 2.1 runtime:

  • Open the existing project in Visual Studio.
  • Locate the Solution Explorer window, and find the VAF project within the solution.
  • Expand the project’s References node and delete the existing references to:
    • MFiles.Crypto
    • MFiles.VAF
    • MFiles.VAF.Configuration
    • MFilesAPI
  • Right-click on the project name and select Manage NuGet Packages...
  • Select the existing M-Files.VAF reference and click the Update button to upgrade to the latest published version.

It is recommended to update your entry point class (typically VaultApplication) to use the new base class. This will require some changes to your code but is required to enable some of the new VAF 2.1 functionality. A sample on how to convert a VAF 2.0 application to VAF 2.1 is also available.

From Version 1.0 to Version 2.0

New VAF 2.0 applications can be created using the M-Files Online Visual Studio template. To upgrade an existing VAF 1.0 application to 2.0, the following steps need to be taken.

  • Create a blank VAF 2.0 application from the updated template.
    • From the new application, locate the MFiles.VAF.dll, MFiles.VAF.Configuration.dll and MFiles.Crypto.dll files.
  • Open the existing VAF 1.0 application in Visual Studio:
    • Update the references
      • Expand the References node in Solution Explorer.
      • Locate and delete the existing MFiles.VAF.dll reference.
      • Add a reference to MFiles.VAF.dll, MFiles.VAF.Configuration.dll and MFiles.Crypto.dll from the VAF 2.0 release.
      • Use nuget to update the Newtonsoft.JSON reference from 6.0.x to 10.0.3.
    • Resolve any namespace issues, for example:

At this point the VAF application can be altered to support 2.0 features such as licensing and integration into the M-Files 2018 Administration Configuration interface.