VDF を使用してファイルをダウンロードする

VDF によって提供されるワークフローの 1 つが、ファイルのダウンロードです。Vault からファイルをダウンロードする場合、通常、Vault サーバからビットを取得するだけでなく、ダウンロードに関連する複数の手順があります。

たとえば、ファイルの作業フォルダの場所の指定、進行状況ダイアログの表示、移動や名前変更によって解除されたファイル参照の修復などの手順が挙げられます。このビジネス ロジックをクライアント アプリケーションで必要としない場合でも、VDF 層ではその他の有効な機能が提供されます。たとえば、ファイルの並行ダウンロードやファイル保管サービスの処理に伴う複雑性緩和によるパフォーマンスの向上などがあります。

VDF によって提供される一部の機能領域と同様に、ファイル取得の API メソッドには GUI を使用する方法と GUI を使用しない方法の 2 種類があります。GUI を使用しないファイル取得メソッドでは、VDF 接続クラスに属している FileManager サービスにアクセスします。このサービスは、Vault ファイルを操作する数種類のメソッドを提供します。1 つまたは複数の Vault ファイルをダウンロードするために使用する具体的なメソッドには、FileManager.AcquireFiles() と FileManager.AcqurieFilesAsync() の 2 つがあります。名前に示されているように、1 つ目のメソッドはダウンロードの同期呼び出し、2 つ目のメソッドは非同期呼び出しです。非同期呼び出しは、継続的なスケジュール設定を有効化する場合に使用できる System.Threading.Tasks.Task を即座に返します。GUI を使用するファイル取得メソッドは、AcquireFiles() や AcquireFilesAsync() のように名前が似ていますが、VDF.Vault.Forms.Library クラスにアクセスします。GUI を使用しないメソッドと同様に、GUI を使用する非同期の方法は、呼び出しメソッドにコントロールをほぼ即座に返し、実際の取得動作のタスクを返します。GUI を使用するメソッドの場合、ダウンロード中に進行状況ダイアログがユーザに既定で表示されます。非同期の方法を使用した場合、進行状況ダイアログはモードレス ダイアログです。それ以外の場合は、進行状況ダイアログはモーダル ダイアログです。

これらの異なる取得メソッドでは、すべて何らかの設定オブジェクトを受け入れ、取得ワークフローのさまざまな要素を制御します。GUI を使用しないメソッドでは、VDF.Vault.Settings.AcquireFilesSettings クラスをパラメータとして受け入れます。このクラスは、異なるダウンロード設定のすべての基本クラスとして使用されます。GUI を使用するファイル取得メソッドは、2 種類の異なる設定クラスを受け入れます。これらのクラスでは、AcquireFilesSettings クラスが基本クラスとして使用されます。2 種類の設定クラスは、VDF.Vault.Forms.Settings.ProgressAcquireFilesSettings クラスと VDF.Vault.Forms.Settings.InteractiveAcquireFilesSettings クラスです。どちらの設定も、GUI を使用するファイル取得メソッドに渡すことができます。クライアント アプリケーションが ProgressAcquireFilesSettings を使用する場合、ファイルのダウンロード中のみに進行状況ダイアログがユーザに表示されます。GUI を使用するファイル取得メソッドに InteractiveAcquireFilesSettings のインスタンスが代わりに渡された場合、VDF ではファイルのダウンロード前に[取得/チェックアウト]ダイアログがユーザに表示されます。このダイアログを使用して、ユーザはダウンロードを開始する前にダウンロードの設定を一部変更できます。たとえば、特定のファイルをチェックアウトするかどうか、ダウンロード先を変更するかどうかなどを指定できます。

同様に、クライアント アプリケーションでは、各種のファイル取得設定クラスのすべてが幅広く使用されています。通常、ファイル取得設定の一般的なプロセスには 2 つの手順しかありません。最初に、設定クラスのインスタンスを新規作成します。設定のコンストラクタは VDF 接続を使用します。この接続は、クライアント アプリケーションがファイルをダウンロードしようとしている Vault への接続である必要があります。次に、AcquireFilesSettings.AddEntityToAcquire() メソッドを使用して、取得(ダウンロード)対象のファイルを設定インスタンスに追加します。もちろん、調整可能な設定や拡張機能もいくつかあります。その他の設定のプロパティの詳細については、SDK のマニュアルを参照してください。設定が完了したら、適切な AcquireFiles[Async]()メソッドを呼び出し、この設定をパラメータとして渡します。VDF を使用する取得ワークフローのサンプルは、SDK に付属している "VaultBrowserSample" サンプル アプリケーション内にあります。

2013 SDK のダウンロード API から 2014 SDK のダウンロード API に移行する

2013 SDK から 2014 SDK への直接ポートの実行を検討している開発者の場合、GUI を使用しない方法、同期ダウンロード メソッド、FileManager.AcquireFiles()を使用していることが多いと考えられます。これは、SDK の旧バージョンでは、GUI や非同期のコンポーネントとメソッドが提供されていなかったことが要因として挙げられます。ただし、更新対象のクライアント アプリケーションでは、ファイルのダウンロードおよびチェックアウト用の既存の GUI やコードが何らかの形で流用される可能性があります。ほとんどの 2013 アプリケーションでは、DocumentService の DownloadFile()メソッドを使用して、Vault からファイルがダウンロードされていたと考えられます。このメソッドでは、Vault 内の指定ファイルのバイトが単純に取得されます。このメソッドを使用したコードの例を次に示します。

上記のコードの場合、Vault から指定ファイルのバイトがダウンロードされ、特定の場所のディスクに書き込まれます。VDF を使用するコードで同じ操作を実行する場合、コードは次のようになります。