かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

データの保存についてもう一度考えてみた

Windoes 8 RP + Visual Studio 2012 RC時点の情報です。

前に、データの保存先については考えてみました。

まぁ、当然っちゃぁ当然なんですが何を何処に保存するのかってのは、今まで以上に考えないといけないんですよね。本当に永続化したいものと、ユーザーの体験向上のために、以前の状態を復元するための一時保存の使い分けをきちっとしないといけない。

これは、今まで以上に設計大事な気がします。ということで、SuspensionManagerクラスには、一時保存のデータを保存しておいて、ApplicationData.CurrentからとれるLocalFolderやLocalSettingsには、本当にアプリケーションをユーザーが終了して、再度起動されたときでもきちんと読み込みたいデータとかを保存する場所として作りこみが必要になる。

また、オフラインでもオンライン時に取得したデータを表示したいといった要件がある場合は、LocalFolderなんかにデータを保存しておかないといけない。これはSuspensionManagerを使うとダメ。Terminatedの時にしか復元したいデータではなくてオフライン状態で起動されたときに明示的に読み込むものなので別口で保存する必要がある。

とまぁ、ちょっと考えるだけで色々なデータをいろんな場所に保存しないといけない。今までのアプリケーションでもそうだったんだけど、Metro スタイル アプリだと、アプリケーションがバックグラウンドに回った時に何時終了するかわからないという状態なので致し方ない。Terminatedからの復帰時には、前の状態を復元するのが望ましいので、これを実現するには結構頑張らないといけないと思う今日この頃です。

とまぁ徒然なるままに書いてみました。