Uno de los flujos de trabajo que proporciona VDF es la descarga de un archivo. Cuando se descarga un archivo de Vault, suele haber otros pasos aparte de extraer los bits del servidor de Vault.
Incluyen, por ejemplo, determinar la ubicación de la carpeta de trabajo del archivo, visualizar un cuadro de diálogo de progreso, reparar referencias de archivo dañadas debido a desplazamientos o cambios de nombre, etc. Aunque las aplicaciones cliente no requieran esta lógica empresarial, la capa VDF proporciona ventajas adicionales, como las mejoras de rendimiento al descargar archivos en paralelo y ocultar la complejidad de trabajar con el servicio de almacén de archivos.
Del mismo modo que algunas de las áreas de funcionalidad que proporciona VDF, existen versiones GUI y no GUI para adquirir métodos API de archivos. El método de adquisición de archivos no GUI es accesible desde fuera del servicio FileManager, que reside fuera de la clase de conexión VDF. Este servicio proporciona algunos métodos diferentes de trabajar con archivos de Vault. El método específico que se utilizará para la descarga de uno o varios archivos de Vault se suministra en dos versiones, FileManager.AcquireFiles() y FileManager.AcquireFilesAsync(). Como su propio nombre indica, el primero es una llamada de descarga síncrona mientras que el segundo es una llamada asíncrona que devolverá inmediatamente una clase System.Threading.Tasks.Task que podrá usar para planificar una continuación. Las versiones GUI de los métodos de adquisición de archivos de denominan de manera similar AcquireFiles() y AcquireFilesAsync(), pero son accesibles fuera de la clase VDF.Vault.Forms.Library. Como con el método no GUI, la versión GUI asíncrona devolverá el control al llamar al método casi inmediatamente y devolverá una tarea del trabajo de adquisición real. Por defecto, los métodos GUI mostrarán un cuadro de diálogo de progreso al usuario durante la descarga. El cuadro de diálogo de progreso será amodal si se ha usado la versión asíncrona y, de lo contrario, será modal.
Todos estos métodos de adquisición diferentes aceptan algún tipo de objeto de configuración para controlar diversos aspectos del flujo de trabajo de adquisición. Los métodos no GUI aceptan la clase VDF.Vault.Settings.AcquireFilesSettings como un parámetro. Esta clase se utiliza como la clase base para las distintas versiones de configuración de descarga. Las versiones GUI de los métodos de adquisición de archivos aceptan dos clases de configuración de versiones diferentes que tienen la clase AcquireFilesSettings como clase base. Se trata de la clase VDF.Vault.Forms.Settings.ProgressAcquireFilesSettings y la clase VDF.Vault.Forms.Settings.InteractiveAcquireFilesSettings. Estas clases de configuración se pueden transferir a los métodos de adquisición de archivos GUI. Si las aplicaciones cliente utilizan la clase ProgressAcquireFilesSettings, el usuario solo verá un cuadro de diálogo de progreso durante la descarga de un archivo. En cambio, si una instancia de InteractiveAcquireFilesSettings se transfiere a los métodos de adquisición de archivos GUI, VDF mostrará un cuadro de diálogo "Obtener/Aplicar check-out" al usuario antes de intentar descargar archivos. Con este cuadro de diálogo, el usuario puede modificar algunos de los parámetros de descarga antes de iniciar la descarga, por ejemplo, especificar si desea aplicar check-out a algunos archivos o cambiar la ubicación de descarga.
Las aplicaciones de cliente utilizan frecuentemente todas las clases de configuraciones de adquisición de archivos de la misma forma. El proceso general de configuración de archivos de la adquisición de archivos suele incluir dos pasos. En primer lugar, solo tiene que crear una nueva instancia de la clase de configuración. Los constructores de configuración adoptan la conexión VDF. Esta conexión debe ser la conexión a Vault de la que la aplicación cliente intenta descargar los archivos. En segundo lugar, añada los archivos que desee adquirir (o descargar) a la instancia de configuración mediante el método AcquireFilesSettings.AddEntityToAcquire(). Naturalmente, existen otros parámetros y puntos de extensibilidad que se pueden ajustar. Se puede encontrar más información sobre otras propiedades de configuración en la documentación del SDK. Una vez completada la configuración, llame al método AcquireFiles[Async]() apropiado y transfiera la configuración como un parámetro. Un ejemplo de flujo de trabajo de adquisición mediante VDF puede verse en la aplicación de ejemplo "VaultBrowserSample" que se suministra con el SDK.
Aquellos desarrolladores que estén más interesados en crear un puerto directo desde el SDK de 2013 al SDK de 2014, es probable prefieran usar el método no GUI de descarga síncrona, FileManager.AcquireFiles(). Esto se debe a que las versiones anteriores del SDK no proporcionan ninguna GUI ni componentes o métodos asíncronos, por lo que es probable que las aplicaciones cliente que se deben actualizar ya tengan algún tipo de GUI o código donde descargar y/o aplicar check-out a los archivos. Es probable que la mayoría de las aplicaciones de 2013 hayan descargado archivos de Vault utilizando el método DownloadFile() de DocumentService. Este método solo extrae los bytes de un archivo determinado en Vault. El código que lo utiliza puede tener un aspecto similar al siguiente:
El código anterior descarga los bytes de un determinado archivo de Vault y los escribe en el disco en una determinada ubicación. Existe código que utiliza VDF para lograr el mismo objetivo que puede tener un aspecto similar al siguiente: