Pobieranie plików za pomocą platformy VDF

Jednym z procesów roboczych zapewnianych w ramach platformy VDF jest pobieranie pliku. Pobieranie pliku z programu Vault wymaga zwykle kilku innych czynności oprócz samego przesyłania bitów z serwera Vault.

Obejmują one np. określanie położenia folderu roboczego pliku, wyświetlanie okna dialogowego postępu, naprawianie odnośników do plików uszkodzonych z powodu przeniesienia lub zmiany nazwy itp. Nawet jeśli aplikacje klienckie nie wymagają tej logiki biznesowej, warstwa platformy VDF zapewnia dodatkowe korzyści, takie jak zwiększenie wydajności dzięki równoczesnemu pobieraniu plików i uproszczeniu pracy z usługą magazynu plików.

Podobnie jak w przypadku kilku innych obszarów funkcjonalności zapewnianej przez platformę VDF, dostępne są wersje metod interfejsu API pobierania plików zarówno z interfejsem graficznym, jak i bez niego. Metoda pobierania pliku bez interfejsu graficznego jest dostępna za pomocą usługi FileManager, która opiera się na klasie połączenia VDF. Usługa ta zapewnia kilka różnych metod pozwalających na pracę z plikami programu Vault. Konkretna metoda do pobierania co najmniej jednego pliku programu Vault jest dostępna w dwóch wersjach: FileManager.AcquireFiles() i FileManager.AcqurieFilesAsync(). Tak jak sugeruje nazwa, pierwsza jest synchronicznym wywołaniem pobierania, a druga jest wywołaniem asynchronicznym, które natychmiast zwraca metodę System.Threading.Tasks.Task, której można użyć do zaplanowania kontynuacji. Metody pobierania plików z interfejsem graficznym są nazwane podobnie: AcquireFiles() i AcquireFilesAsync(), ale dostęp do nich można uzyskać za pomocą klasy VDF.Vault.Forms.Library. Podobnie jak w przypadku metody bez interfejsu graficznego, asynchroniczna wersja z interfejsem graficznym spowoduje niemal natychmiastowy powrót do metody wywołującej i zwróci zadanie rzeczywistego pobierania. W przypadku metod z interfejsem graficznym domyślnie podczas pobierania wyświetlane będzie okno dialogowe postępu. Okno dialogowe postępu będzie niemodalne, jeśli użyto wersji asynchronicznej; w przeciwnym razie okno będzie modalne.

Wszystkie te metody pobierania akceptują jakąś postać obiektu ustawień, co pozwala sterować różnymi aspektami procesu roboczego pobierania. Metody bez interfejsu graficznego akceptują klasę VDF.Vault.Settings.AcquireFilesSettings jako parametr. Klasa ta jest używana jako klasa podstawowa w przypadku wszystkich ustawień różnych wersji pobierania. Metody pobierania plików w wersjach z interfejsem graficznym akceptują klasy ustawień dwóch różnych wersji, w których klasa AcquireFilesSettings jest klasą podstawową. Są to klasy VDF.Vault.Forms.Settings.ProgressAcquireFilesSettings i VDF.Vault.Forms.Settings.InteractiveAcquireFilesSettings. Obie klasy ustawień mogą być przekazane do metod pobierania plików z interfejsem graficznym. Jeśli w aplikacjach klienckich stosowana jest klasa ProgressAcquireFilesSettings, podczas pobierania pliku będzie wyświetlane jedynie okno dialogowe postępu. Jeśli zamiast tego do metod pobierania plików z interfejsem graficznym jest przekazywane wystąpienie klasy InteractiveAcquireFilesSettings, przed próbą pobrania plików zostanie wyświetlone okno dialogowe pobierania/wypisywania platformy VDF. W tym oknie dialogowym użytkownik może modyfikować niektóre ustawienia pobierania przed jego rozpoczęciem. Na przykład może określić, czy dane pliki powinny być wypisane, lub zmienić lokalizację pobierania.

W aplikacjach klienckich wszystkie klasy ustawień różnych wersji pobierania plików będą w znacznym stopniu używane w ten sam sposób. Ogólny proces konfigurowania ustawień pobierania plików zazwyczaj składa się z dwóch kroków. Najpierw należy po prostu utworzyć nowe wystąpienie klasy ustawień. Konstruktory ustawienia korzystają z połączenia VDF. Musi ono być połączeniem z programem Vault, z którego aplikacja kliencka próbuje pobrać pliki. Następnie należy dodać pliki do pobrania do wystąpienia ustawień za pomocą metody AcquireFilesSettings.AddEntityToAcquire(). Oczywiście istnieje kilka innych ustawień i punktów rozszerzeń, które można dostosować. Więcej szczegółowych informacji na temat innych właściwości ustawień można znaleźć w dokumentacji zestawu SDK. Po zakończeniu konfigurowania ustawień należy wywołać odpowiednią metodę AcquireFiles[Async]() i przekazać ustawienia jako parametr. Ilustrację procesu roboczego pobierania przy użyciu platformy VDF można znaleźć w przykładowej aplikacji „VaultBrowserSample”, która jest dostarczana z zestawem SDK.

Przejście od interfejsu API pobierania z zestawu SDK 2013 do interfejsu API pobierania z zestawu 2014

Programiści, którzy są najbardziej zainteresowani bezpośrednim dostosowaniem kodu napisanego przy użyciu zestawu SDK 2013 pod kątem zestawu SDK 2014, najprawdopodobniej skoncentrują się na synchronicznej metodzie pobierania bez interfejsu graficznego FileManager.AcquireFiles(). Wynika to z faktu, że poprzednie wersje zestawu SDK nie zawierały składników ani metod interfejsu graficznego czy asynchronicznych. W związku z tym jest prawdopodobne, że aktualizowane aplikacje klienckie będą już miały jakiś interfejs graficzny lub kod używany do pobierania i/lub wypisywania plików. W większości aplikacji zgodnych z zestawem 2013 prawdopodobnie pliki były pobierane z programu Vault za pomocą metody DownloadFile() klasy DocumentService. Metoda ta po prostu pobiera bajty danego pliku z programu Vault. Przykład kodu, w którym ta metoda jest używana, może wyglądać następująco:

Powyższy kod odpowiada za pobieranie bajtów danego pliku z programu Vault i zapisywanie ich na dysku w określonym położeniu. Przykład kodu, w którym do osiągnięcia tego samego celu jest używana platforma VDF, może wyglądać następująco: