ドキュメントレベルのカスタマイズにおけるキャッシュ データ

ドキュメントレベルのカスタマイズの主な目的は、Office ドキュメントのビューからデータを分離することです。 データとは、数字やテキストを含む、ドキュメントに格納されている情報を指します。 ビューは、ユーザー インターフェイスと Microsoft Office Word および Microsoft Office Excel のオブジェクト モデルを指します。

Visual Studio では、データをデータ アイランド (データ キャッシュとも呼ばれます) として埋め込めるようにすることで、ドキュメントレベルのカスタマイズでビューのデータを分離します。 Word または Excel の起動なしで、データの読み取りや変更を直接行うことができます。 これは、Microsoft Office がインストールされていないサーバー上のドキュメントのデータを変更する必要がある場合に便利です。 Word と Excel は、クライアント環境での使用を目的としています。サーバー上で実行するように設計されていません。

適用対象: このトピックの情報は、Excel および Word のドキュメント レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

ドキュメントレベルのカスタマイズの詳細については、「Office ソリューションの開発の概要 (VSTO)」と「ドキュメントレベルのカスタマイズのアーキテクチャ」を参照してください。

キャッシュされたデータ プログラミング モデルを理解する

データ アイランドには、ソリューション内の特定の要件を満たす任意のオブジェクトを含めることができます。 これらのオブジェクトには、DataSet オブジェクト、DataTable オブジェクト、および XmlSerializer クラスによってシリアル化できるその他のオブジェクトが含まれます。 詳細については、「キャッシュ データ」を参照してください。

キャッシュされたデータのビューを提供するには、ドキュメント上の Windows フォーム コントロールとホスト コントロールをデータ アイランド内のオブジェクトにバインドできます。 データ アイランドとデータ バインド コントロールの間のデータ バインディングによって、2 つの同期が維持されます。 コントロールに依存しないデータに対する検証コードを追加することもできます。 詳細については、「Office ソリューションのコントロールにデータをバインドする」を参照してください。

ホスト コントロールは、Excel および Word オブジェクト モデルのネイティブ オブジェクトの拡張バージョンです。 ネイティブ オブジェクトとは異なり、ホスト コントロールはマネージド データ オブジェクトに直接バインドできます。 詳細については、「ホスト項目とホスト コントロールの概要」と「Office ドキュメントでの Windows フォーム コントロールの概要」を参照してください。

サーバー上のキャッシュされたデータにアクセスする

ドキュメント内のキャッシュされたデータにアクセスするには、ServerDocument クラスを使用できます。 このクラスは Visual Studio Tools for Office ランタイムの一部であり、Excel または Word を実行せずにサーバーで使用できます。 キャッシュされたデータを変更した後にユーザーがドキュメントを開くと、そのデータにバインドされているすべてのコントロールが自動的に変更に同期され、更新されたデータがユーザーに表示されます。 詳細については、「サーバー上のドキュメントのデータにアクセスする」を参照してください。

サーバー上のデータに書き込むために Excel と Word は必要ありません。クライアントで表示するためにのみ必要です。 Excel と Word をサーバーにインストールする必要もありません。 これにより、スケーラビリティが向上し、データ アイランドを含むドキュメントのバッチ処理を高速に実行できるようになります。

オフラインで使用するためのデータ キャッシュ

データ アイランドにデータを格納すると、オフラインのシナリオに対応できます。 ユーザーが初めてドキュメントを開くかサーバーからドキュメントを要求すると、データ アイランドに最新のデータが格納されます。 データ アイランドがドキュメントにキャッシュされ、その後オフラインで使用できるようになります。 ライブ接続が使用できない場合でも、ユーザー (およびコード) はデータを操作できます。 ユーザーが再接続したときに、データに対する変更をサーバーのデータ ソースに反映させることができます。

キャッシュされたデータとカスタム XML パーツの比較

カスタム XML パーツは、ドキュメントに XML の任意の部分を格納する方法として、2007 Microsoft Office システムで導入されました。 カスタム XML パーツはデータ キャッシュと同じシナリオの多くで役に立ちますが、データ アイランドとカスタム XML パーツにはいくつかの違いがあります。 カスタム XML パーツの詳細については、「カスタム XML パーツの概要」を参照してください。

次の表に、相違点と類似点をいくつか示します。

質問/特性 データ キャッシュ カスタム XML パーツ
どの Office アプリケーションでこれらを使用できますか? 次のアプリケーションのドキュメントレベルのカスタマイズ:

- Excel
- Word
次のアプリケーションのドキュメントレベルおよびアプリケーションレベルのソリューション:

- Excel
- PowerPoint
- Word
どのような種類のデータを格納できますか? 特定の要件を満たす、カスタマイズ アセンブリ内の任意のパブリック オブジェクト。 詳細については、「キャッシュ データ」を参照してください。 任意の XML データ。
Microsoft Office アプリケーションを起動せずにデータにアクセスできますか? はい。Visual Studio Tools for Office ランタイムによって提供される ServerDocument クラスを使用します。 はい。System.IO.Packaging 名前空間のクラスを使用するか、Open XML Format SDK を使用します。