私は、Silverlight クライアントと関連する ASP.NET Web サービス (WCF ではない) に取り組んでおり、「お気に入りの項目」システムや、ワード ラッピングが必要かどうかなど、ユーザー設定を含むいくつかの機能を実装する必要があります。(腹立たしくするのではなく) 快適なユーザー エクスペリエンスを実現するために、これらの設定をセッション間で維持したいと考えています。簡単な調査では、主に 2 つの可能性があることが示唆されています。
- Silverlight 分離ストレージ
- ASP.NET アクセス可能なデータベース
オプション 2 は、ユーザーが Silverlight の分離ストレージを無効にしても設定が維持されるため、おそらく最良のオプションであると認識していますが、現時点ではデータベースを維持する負担を回避したいと考えており、このアイデアが気に入っています。サーバー接続が利用できない場合でも、設定を読み込んで編集できること。しかし、私は、後でよりも今この攻撃を受ける方が好ましい理由について、合理的な議論を受け入れます。
私が探しているのは、どちらのシナリオでも、設定の永続性を実装するための最良の方法に関する提案です。たとえば、分離ストレージが使用されている場合、設定を保持するために XML 形式またはその他のファイル レイアウトを使用する必要があります。データベース アプローチを使用する場合、設定テーブルを設計する必要がありますか、それとも ASP.NET にこれをサポートする組み込みメカニズムがありますか? クライアントに設定を提供するにはどうすればよいですか?
そう:
ユーザー設定の永続化に適したソリューションはどれですか? そのソリューションで設定を保持する方法と、クライアントがそれらにアクセスして更新する方法を教えてください。
先行研究
この問題について少し事前調査を行ったところ、次のリンクを見つけたことに注意してください。これらのリンクは、読んだ記事に応じていずれかの解決策を提唱しているようです。
- http://www.ddj.com/windows/208300036
- http://tinesware.blogspot.com/2008/12/persisting-user-settings-in-silverlight.html
アップデート
Microsoft は、Silverlight の組み込み部分として分離ストレージでの設定の永続化を提供していることが判明しました (別の方法を実装するまで、どういうわけかそれを見逃していました)。以下の私の答えには、これに関する詳細があります。
マイクロソフトはクライアント側の設定の永続性を提供していますが、これがユーザー設定を永続化するための最良のアプローチであるとは限らないため、質問を開いたままにしています。