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.
The steps required will depend upon which functionality you wish to take into use, but the basic steps include:
- Open the project to be updated using Visual Studio 2017 or Visual Studio 2019.
- Right-click on the project in the
Solution Explorer
and selectManage NuGet packages...
. - Ensure that the
Browse
tab is selected and enterM-Files VAF Extensions
into the search box. - Add a reference to the latest public build of the VAF Extensions library. Note that you should avoid pre-releases (any version that ends in
-something
) in production code. - Open your
VaultApplication.cs
file. - Change the base class from
MFiles.VAF.ConfigurableVaultApplicationBase<T>
toMFiles.VAF.Extensions.ConfigurableVaultApplicationBase<T>
. - You may also need to add a
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.
- Major version increments (e.g. 1.x to 2.x) introduce significant breaking changes including new functionality. Migrating between major versions may require significant code changes depending on your existing code.
- Minor version increments (e.g. 1.1.x to 1.2.x) are generally additive in nature but may include smaller breaking changes such as the movement of classes between namespaces. Migrating between minor versions may require small code changes depending on your existing code.
- Build version increments (e.g. 1.1.5 to 1.1.10) are generally bugfixes and should not include any breaking changes. Note that build version increments in pre-release builds may contain significant breaking changes; 1.2.3-alpha may be sigificantly different to 1.2.2-alpha.
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.