Dateien mit dem VDF herunterladen

Einer der von VDF bereitgestellten Arbeitsabläufe lädt eine Datei herunter. Das Herunterladen einer Datei aus Vault umfasst in der Regel mehr als nur das Abrufen der einzelnen Bits vom Vault-Server.

Es beinhaltet beispielsweise die Lokalisierung des Arbeitsordners der Datei, die Anzeige eines Fortschrittsdialogs, die Reparatur von Dateireferenzen, die aufgrund von Verschiebungen oder Umbenennungen nicht mehr funktionieren, usw. Selbst wenn Client-Anwendungen diese Geschäftslogik nicht benötigen, bietet der VDF-Layer Vorteile wie Leistungsverbesserungen durch das gleichzeitige Herunterladen mehrerer Dateien oder den Wegfall der komplexen Handhabung des Filestore-Service, die nun im Hintergrund stattfindet.

Wie auch bei anderen von VDF bereitgestellten Funktionen gibt es sowohl eine grafisch orientierte GUI- als auch eine nicht grafisch orientierte Nicht-GUI-Version der API-Methoden zum Abrufen von Dateien. Die Nicht-GUI-Methoden werden über den FileManager-Service aufgerufen, der mit der VDF Connection-Klasse bereitgestellt wird. Dieser Service stellt einige besondere Methoden für die Arbeit mit Vault-Dateien bereit. Die spezifische Methode für das Herunterladen einer oder mehrerer Vault-Dateien liegt in zwei Varianten vor, der FileManager.AcquireFiles()- und der FileManager.AcquireFilesAsync()-Methode. Wie der Name schon andeutet, ist die erste Methode ein synchroner Download-Aufruf, während die zweite ein asynchroner Aufruf ist, der sofort eine System.Threading.Tasks.Task zurückgibt, mit der Sie die eigentliche Abrufarbeit planen können. Die GUI-Versionen der Abrufmethoden für Dateien heißen nach dem gleichen Schema AcquireFiles() und AcquireFilesAsync(), werden aber über die VDF.Vault.Forms.Library-Klasse aufgerufen. Wie die Nicht-GUI-Methode gibt auch die asynchrone GUI-Version die Kontrolle nahezu sofort an die aufrufende Methode zurück - ebenso mit einer Task für die eigentliche Abrufarbeit. Die GUI-Methoden zeigen dem Benutzer während des Downloads vorgabegemäß einen Fortschrittsdialog an. Bei Verwendung der asynchronen Version ist der Fortschrittsdialog modusunabhängig, während es sich andernfalls um ein modales Dialogfeld handelt.

Alle diese Abrufmethoden akzeptieren eine bestimmte Form des Settings-Objekts, mit dem verschiedene Aspekte des Abrufablaufs gesteuert werden können. Die Nicht-GUI-Methoden akzeptieren die VDF.Vault.Settings.AcquireFilesSettings-Klasse als Parameter. Diese Klasse wird als Basisklasse für alle anderen Varianten der Download-Einstellungen verwendet. Die GUI-Versionen der Dateiabrufmethoden akzeptieren zwei verschiedene Versionen der Basisklasse AcquireFilesSettings. Dies sind die VDF.Vault.Forms.Settings.ProgressAcquireFilesSettings- und die VDF.Vault.Forms.Settings.InteractiveAcquireFilesSettings-Klasse. Beide dieser Settings-Klassen können an die GUI-Versionen der Dateiabrufmethoden übergeben werden. Wenn eine Client-Anwendung die ProgressAcquireFilesSettings-Klasse verwendet, wird der Fortschrittsdialog nur während eines Dateidownloads angezeigt. Wird stattdessen eine Instanz der InteractiveAcquireFilesSettings-Klasse an die GUI-Dateiabrufmethode übergeben, so öffnet VDF vor dem Download das Dialogfeld Abrufen/Auschecken. In diesem Dialogfeld kann der Benutzer vor dem Herunterladen einige Download-Einstellungen ändern, z. B. die auszucheckenden Dateien oder den Speicherort für Downloads.

Die Client-Anwendungen verwenden die verschiedenen Settings-Klassen zum Abrufen von Dateien im Prinzip auf die gleiche Weise. Im Allgemeinen besteht die Einrichtung der Einstellungen zum Abrufen von Dateien aus nur zwei Schritten. Zunächst erstellen Sie eine neue Instanz der Settings-Klasse. Die Einstellungskonstruktoren benötigen eine VDF-Verbindung, und zwar die Verbindung zu dem Tresor, aus dem die Client-Anwendung Dateien herunterzuladen versucht. Danach fügen Sie die Dateien, die Sie abrufen (d. h. herunterladen) möchten, mit der Methode AcquireFilesSettings.AddEntityToAcquire() zur Settings-Instanz hinzu. Selbstverständlich gibt es noch weitere Einstellung- und Erweiterungspunkte, an denen die Schraube gedreht werden kann. Informationen zu diesen Eigenschaften finden Sie in der Dokumentation zum SDK. Nachdem Sie die Einstellungen festgelegt haben, rufen Sie die entsprechende AcquireFiles[Async]()-Methode auf und übergeben dieser die Settings-Instanz als Parameter. Ein Beispiel für einen Dateiabrufablauf mit VDF finden Sie in der im SDK enthaltenen Beispielanwendung VaultBrowserSample.

Migration von der 2013 SDK Download-API zur 2014 Download-API

Entwickler, die in erster Linie daran interessiert sind, 2013 SDK direkt nach 2014 SDK zu portieren, werden vermutlich die synchrone Nicht-GUI-Download-Methode FileManager.AcquireFiles() verwenden. Grund hierfür ist, dass in den vorherigen SDK-Versionen keine GUI- und asynchronen Komponenten oder Methoden enthalten waren. Daher ist es wahrscheinlich, dass auf den zu aktualisierenden Client-Anwendungen bereits die eine oder andere fremde GUI bzw. Code zum Herunterladen und/oder Auschecken von Dateien installiert wurde. Die meisten 2013-Anwendungen haben Dateien aus Vault vermutlich mit der DocumentService-Methode DownloadFile() heruntergeladen. Diese Methode überträgt lediglich die Byte einer bestimmten Datei aus Vault. Code, der diese Methode verwendet, kann zum Beispiel wie folgt aussehen:

Der obenstehende Code lädt die Byte einer bestimmten Datei aus Vault herunter und schreibt sie an einen bestimmten Speicherort auf der Festplatte. Code, der zum selben Zweck VDF verwendet, sieht vermutlich etwa wie folgt aus: