エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows ランタイムを使ったアプリ データへのアクセス (Windows ランタイム アプリ)

Applies to Windows and Windows Phone

アプリ データとは、特定のアプリに固有の実行可能データです。ランタイム状態、ユーザー設定、その他の設定が含まれます。アプリ データは、アプリの実行時に作成、読み取り、更新、削除が行われます。

デスクトップ アプリでは、レジストリに設定を保存し、Program Files フォルダーにファイルを保存することをお勧めします。Windows ランタイム アプリでは、アプリのデータ ストアに、各アプリとユーザーに固有の設定とファイルを保存することをお勧めします。アプリのデータ ストアはシステムに管理され、他のアプリや他のユーザーから確実に分離されます。また、アプリに更新プログラムをインストールするときはデータ ストアの内容が保持され、アプリのアンインストール時にはデータ ストアの内容が完全に削除されます。

アプリケーション データのサンプル ページに、Windows ランタイム アプリ データ API を使って、ユーザーと Windows ランタイム アプリごとに特有のデータを保存および取得する方法が示されています。

アプリ データに関する重要な注意:  アプリ データの有効期間はアプリの有効期間に依存します。アプリが削除されると、すべてのアプリ データが失われます。ユーザー データなど、ユーザーにとって欠かすことができない重要なデータの保存には、アプリ データを使わないでください。そのような情報の保存には、ユーザーのライブラリや OneDrive を使うことをお勧めします。アプリ データは、アプリ固有のユーザー設定、設定、お気に入りを保存するのに適しています。

アプリ データ ストレージ

アプリのインストール時には、設定やファイルなどのアプリ データ用に、ユーザーごとに固有のデータ ストアが設定されます。物理的記憶域はシステムによって管理されるため、このデータの場所や形式を開発者が意識する必要はありません。アプリ データの操作を簡単にするアプリ データ API を使うだけで十分です。

データ ストアは次のとおりです。

ローカル

現在のデバイスにあり、クラウドにバックアップされているデータ。

ローミング

ユーザーがアプリをインストールしたすべてのデバイス上に存在するデータ。

一時

システムによって任意の時点で削除されるデータ。

localcache

現在のデバイス上にのみ存在する永続的なデータ。

アプリが削除されると、これらのデータ ストアも削除されます。

必要に応じて、アプリのアプリ データをバージョン管理することもできます。これにより、将来作成するアプリのバージョンでアプリ データの形式を変更しても、以前のバージョンとの互換性に問題が起こりません。データ ストア内のアプリ データのバージョンをアプリが確認し、以前のバージョンであった場合、アプリ データを新しい形式に更新してバージョンも更新します。詳しくは、Application.Version プロパティと ApplicationData.SetVersionAsync メソッドに関するトピックをご覧ください。

アプリの設定

アプリのデータ ストア内の設定は、レジストリに格納されます。アプリ データ API を使う場合、レジストリのアクセスは透過的です。アプリのデータ ストア内には、アプリごとに設定用のルート コンテナーがあります。アプリで、ルート コンテナーに設定や新しいコンテナーを追加できます。新しいコンテナーを作成すると、設定の整理に役立ちます。コンテナーは 32 階層まで入れ子にできます。ツリーの幅に制限はありません。

コンポジット設定を使うと、相互に依存する設定のアトミックな更新が簡単になります。同時アクセスとローミング時は、システムによってコンポジット設定の整合性が保たれます。コンポジット設定は少量のデータに適しており、大きなデータ セットに使うとパフォーマンスが低下する場合があります。

アプリの設定はローカルまたはローミングです。アプリがローカル データ ストアに追加する設定は、ローカル デバイス上にのみ存在します。アプリがローミング データ ストアに追加する設定は、ユーザーがそのアプリをインストールしたすべてのデバイス上に自動的に同期されます。

アプリの設定には、Windows ランタイム データ型のほとんどを使うことができます。

バイナリ型はありません。バイナリ データを保存する必要がある場合は、アプリ ファイルを使ってください。

他のオブジェクトの型をアプリ データに直接割り当てることはできません。サポートされているデータ型のいずれかにデータをシリアル化できます。たとえば JSON としてデータをシリアル化し、文字列として格納することはできますが、シリアル化を処理する必要があります。

書き込まれるデータのサイズがデータ型のサイズと一致するかどうかが、システムによって確認されます。データの検証はシステムによって行われないため、書き込んでから読み取るまでの間にデータが変更されたかどうかを確認する必要があります。

アプリ ファイル

アプリのデータ ストア内のファイルは、ファイル システムに格納されます。アプリのデータ ストア内のファイルは、Windows 7 のユーザー プロファイルの AppData 部分にあるファイルと同じようにアプリで使うことができます。各アプリのデータ ストア内には、ローカル ファイル用、ローミング ファイル用、一時ファイル用に 1 つずつ、システム定義のルート ディレクトリがあります。アプリで、ルート ディレクトリに新しいファイルや新しいディレクトリを追加できます。新しいディレクトリを作成すると、ファイルの整理に役立ちます。アプリのデータ ストア内のディレクトリは 32 階層まで入れ子にできます。ツリーの幅に制限はありません。

アプリのファイルはローカルまたはローミングです。アプリがローカル データ ストアに追加するファイルは、ローカル デバイス上にのみ存在します。アプリがローミング データ ストアに追加するファイルは、ユーザーがそのアプリをインストールしたすべてのデバイス上に自動的に同期されます。

ローカル アプリ データ

ローカル アプリ データは、アプリ セッション間で保持する必要がある情報のうち、種類やサイズがローミング アプリ データには適さないものに使います。また、他のデバイスには適用されないデータもここに格納します。ローカルに格納されるデータには、一般的なサイズの制限はありません。 この場所には、 localFolder プロパティでアクセスできます。 アプリのローカル データ ストアは、ローミングに適さないデータや、大きなデータ セットに使ってください。

コード例については、次のトピックをご覧ください。

アプリ データのローミング

アプリでローミング データを使うと、複数のデバイス間でアプリ データを簡単に同期することができます。アプリを複数のデバイス上にインストールすると、OS によってアプリ データの同期が維持されるため、2 つ目のデバイス上でユーザーが行うアプリのセットアップ作業が軽減されます。またローミングを使うと、異なるデバイス上でも、一覧の作成などの作業を中断したときの状態から再開することができます。ローミング データが更新されると、OS によってクラウドにレプリケートされ、アプリがインストールされている別のデバイスに同期されます。

各アプリでローミングできるアプリ データのサイズには OS による制限があります。 「ApplicationData.RoamingStorageQuota | roamingStorageQuota」をご覧ください。この制限に達した場合、アプリでローミングされたアプリ データの合計が制限値未満に戻るまで、そのアプリのアプリ データはクラウドにまったくレプリケートされません。このため、ローミング データは、ユーザー設定、リンク、小さなデータ ファイルのみに使うことをお勧めします。

通常、アプリのデータは変化しません。しかし、ローミング アプリ データはいつでも変化する可能性があります。アプリに、ローミング アプリ データの変更時に発生する DataChanged | datachanged イベントの処理を登録する必要があります。

新しいバージョンのアプリをインストールしたために、デバイス上のアプリ データが新しいバージョンに更新されると、そのアプリ データがクラウドにコピーされます。アプリが既にインストールされている別のデバイスでは、そのデバイス上のアプリが更新されるまで、アプリ データが更新されることはありません。

アプリのローミング データは、一定の時間間隔内にユーザーがいずれかのデバイスからアクセスしている限り、クラウドに保持されます。この時間間隔内にアプリが実行されないと、そのローミング データはクラウドから削除されます。ユーザーがアプリをアンインストールしても、そのローミング データがクラウドから自動的に削除されることはなく、保持されます。時間間隔内にユーザーがアプリを再インストールすると、ローミング データがクラウドから同期されます。現在のポリシーでは、この時間間隔は 30 日です。 この場所には、roamingFolder プロパティでアクセスできます。

オペレーティング システムは機会があるときにアプリ データをローミングするため、即時同期は保証されません。ユーザーがオフラインであったり、待ち時間の長いネットワークを使ったりしている場合、ローミングはかなり遅れる可能性があります。タイム クリティカルな重要な設定に対しては、優先度が高い特殊な設定単位を使って、より頻繁に更新することができます。これは 1 つの特定の設定単位に制限され、"HighPriority" という名前にする必要があります。コンポジットにすることもできますが、合計サイズは 8 KB に制限されます。この制限は強制的なものではなく、制限を超えた場合は、通常の設定単位または設定コンポジットと同様に扱われます。

コード例については、次のトピックをご覧ください。

ガイドラインについては、「アプリのデータのローミングのガイドライン」をご覧ください。

一時アプリ データ

アプリの一時データ ストアは、キャッシュのような働きをします。ファイルはローミングされず、任意の時点で削除されます。システム メンテナンス タスクを使うと、この場所に格納されているデータをいつでも自動的に削除できます。ディスク クリーンアップを使って、一時データ ストアからファイルを削除することもできます。 一時アプリ データは、アプリ セッションの一時的な情報の格納に使うことができます。このデータは、アプリ セッションの終了後に保持されるという保証はありません。必要に応じて使用領域が再利用されます。 この場所には、temporaryFolder プロパティでアクセスできます。

コード例については、次のトピックをご覧ください。

アプリ データ プログラミング インターフェイス

関連トピック

ガイドライン
アプリのデータのローミングのガイドライン
アプリ設定のガイドライン
サンプル
アプリケーション設定のサンプル
アプリケーション データ サンプル

 

 

表示:
© 2014 Microsoft