Please note that this library is provided "as-is" and with no warranty, explicit or otherwise. You should ensure that the functionality meets your requirements, and thoroughly test them, prior to using in any production scenarios.
The following helper library is a community-driven set of functionality that extends the base M-Files Vault Application Framework. This library is open-source and not directly supported by M-Files. Contributions are accepted according to our contribution guide.
NOTE THAT EXAMPLES IN THIS REPOSITORY SHOULD BE CORRECT FOR THE CURRENT BRANCH; IF YOU ARE IN THE MAIN (UNRELEASED) BRANCH THEN THE SAMPLES MAY NOT WORK ON THE CURRENT PUBLIC RELEASE - MAKE SURE THAT YOU SWITCH TO THE 'RELEASE' BRANCH!
This library is available via nuget. The simplest way to get started with this library is to add the MFiles.VAF.Extensions
package to your existing Vault Application Framework project. This library requires the use of the Vault Application Framework 2.1 or higher.
Ensure that you read documentation in the "MFiles.VAF.Extensions" folder - and others it links to on how to use common functionality.
The steps required will depend upon which functionality you wish to take into use, but the basic steps include:
Solution Explorer
and select Manage NuGet packages...
.Browse
tab is selected and enter M-Files VAF Extensions
into the search box. -something
) in production code.VaultApplication.cs
file.MFiles.VAF.ConfigurableVaultApplicationBase<T>
to MFiles.VAF.Extensions.ConfigurableVaultApplicationBase<T>
.using MFiles.VAF.Extensions;
statement to the top of files that wish to use extension methods. Code examples in this repository should provide you with some guidance.From 22.4, the VAF Extensions library follows a similar versioning format to M-Files itself. The major version (e.g. 22) indicates the year of release (in this case, 2022), and the minor version number (e.g. 4) indicates the month (in this case, April). The latter part of the version number is based upon the number of executions of the GitHub publishing workflow and does not reset each month.
Whilst every effort is made to ensure that the public interfaces of the release versions of the VAF Extensions library stay consistent, changes are sometimes made for quality or functionality reasons. Where possible, older method signatures will be kept available and marked as Obsolete
for 6 months prior to removal.
Some releases may have a suffix (e.g. 22.3.18-preview
) that indicates that the release is a preview of some kind. Sometimes this preview string will indicate exactly what is being previewed, other times it will simply flag that the release should be used in production environments. Note that preview releases are subject to more structural change, and new features or functionality may change between pre-releases.
Before version 22.4, version numbers were incremented manually depending on whether there were breaking changes. The last public release using this naming convention was 1.3.1.3
.
VAF Extensions 1.2 has removed the MFiles.VAF.Extensions.MultiServerMode
namespace that was introduced in 1.1. This change was made to reinforce that the ConfigurableVaultApplicationBase<T>
class and the TaskQueueBackgroundOperation
helpers are designed for all M-Files installations, not just those actively using Multi-Server Mode. It is recommended that vault applications using the VAF Extensions library inherit from the MFiles.VAF.Extensions.ConfigurableVaultApplicationBase<T>
class.