Developing with the VDF

This section is intended to aid developers who are using the Vault SDK and wish to leverage the workflows and utilities provided by the VDF in their own applications.

Below is an overview of how the VDF is organized which will aid developers when searching through the SDK documentation (included in the SDK installer) for classes and methods.

How the VDF is Organized

The VDF is a new part of the SDK and it isn't a flat collection of web service API methods like previous versions of the SDK, so it is worth understanding how the VDF is organized. Currently, the VDF consists of four DLLs with the prefix Autodesk.DataManagement.Client.Framework on their names and the namespaces defined within them. Here's the list:
  • Autodesk.DataManagement.Client.Framework.dll
  • Autodesk.DataManagement.Client.Framework.Forms.dll
  • Autodesk.DataManagement.Client.Framework.Vault.dll
  • Autodesk.DataManagement.Client.Framework.Vault.Forms.dll

As a shorthand, the Autodesk…Framework prefix is often replaced simply with the string "VDF." For example, the Autodesk.DataManagement.Client.Framework.Vault namespace would simply be referred to as VDF.Vault to save keystrokes. As you can might notice, there are some similarities between different pairs of the DLLs. Two of them contain "Vault" in their name, while a different two contain "Forms" in their name.

The DLLs (and the namespaces they contain) that have "Vault" in their name have components that are specific to working with Vault concepts such as Vault related currency and services for talking to a Vault server. The DLLs without "Vault" in their names have more general purpose utilities such as services for managing generic persisted preferences and components useful for displaying prompts to users. The "Forms" DLLs contain WinForms components and workflows that will often display GUI to users while the DLLs without "Forms" in their names don't contain any GUI components. Often times, there are two versions of the a given workflow provided by the VDF, a GUI version and a non-GUI version. GUI versions of a workflow will reside within a "Forms" namespace. Any client applications that don't require GUI don't need to deploy the VDF Forms DLLs.

Most of the functionality provided by the VDF is accessed via one of two entry points: static Library classes in each DLL or through services off the VDF Connection class. The static Library classes reside in the namespace matching the name of each DLL, i.e. the VDF.Vault.dll will have a VDF.Vault.Library class with static methods and services to be used by client applications. The Library classes mostly provide access to GUI workflows (if within a "Forms" namespace) or workflows and services that don't require a VDF connection. The other entry point, a VDF Connection object (of the VDF.Vault.Currency.Connection.Connection class), requires the client application to connect to a Vault server to obtain a connection. The Connection object has several services that interact with a Vault server, such as the FileManager for downloading file or the WorkingFolder. For those familiar with the 2013 Vault SDK, it also provides access to a WebServiceManager if clients need to make any web service API calls directly.