質問

Silverlightクライアントと関連するASP.NET Webサービス(WCFではありません)で作業しています。「お気に入りアイテム」などのユーザー設定を含むいくつかの機能を実装する必要があります。システムおよびワードラッピングが必要かどうか。ユーザーを(イライラさせるのではなく)快適にするために、セッション間でこれらの設定を保持したいと思います。簡単な調査では、主に2つの可能性があることが示唆されています。

  1. Silverlight分離ストレージ
  2. ASP.NETでアクセス可能なデータベース

オプション2はおそらく、ユーザーがSilverlightの分離ストレージを無効にした場合でも設定が維持されることを保証するため、おそらく最良のオプションであることに気付きますが、この時点でデータベースを維持する負担を避けたいと思います。サーバーの接続が利用できない場合でも、設定を読み込んで編集できるという考えのように。ただし、このヒットを後で取得するよりも今すぐ行う方が好ましい理由については、理性的な議論を受け入れています。

私が探しているのは、どちらのシナリオでも設定の永続性を実装する最良の方法に関する提案です。たとえば、分離ストレージを使用する場合、設定を保持するためにXML形式またはその他のファイルレイアウトを使用する必要があります。データベースアプローチを使用する場合、設定テーブルを設計する必要がありますか、それをサポートするためにASP.NETに組み込みのメカニズムがありますか?また、クライアントに設定を提供するにはどうすればよいですか?

だから:

ユーザー設定の永続化のためのより良いソリューションはどれですか?そのソリューションではどのように設定が保持され、クライアントはどのように設定にアクセスして更新しますか?

事前調査

この問題について少し前に調査を行ったところ、次のリンクが見つかりました。これらのリンクは、読んだ記事に応じてどちらかの解決策を提唱しているようです。

更新

Microsoftは、Silverlightの組み込み部分として、分離されたストレージに設定の永続性を提供していることがわかりました(別の方法を実装するまで、どうにかしてそれを見逃していました)。 以下の私の回答に詳細があります。

マイクロソフトはクライアント側の設定の永続性を提供していますが、必ずしもこれがユーザー設定を永続化するための最良のアプローチであることを意味するものではないので、私は質問を開いたままにします。

役に立ちましたか?

解決

さらに調査し、 IsolatedStorage で、 IsolatedStorageSettings クラスおよび IsolatedStorageSettings.ApplicationSettings オブジェクトは、ユーザー固有のアプリケーション設定を保存するためのキー/値コレクションです。

今ではすべてが明らかなようです。もちろん、長期的には、サーバーデータベースを使用して設定をバックアップおよび復元するメカニズムは、このクライアント側の設定の永続性に対する優れた機能強化になります。

他のヒント

一般に、デフォルトはサーバーに保存することだと思います。クライアントに保存しようとする特定の説得力のある理由がある場合にのみ、そうするべきです。制御できないメディアへの保存に依存するほど、リスクが大きくなります。

それが言われたこと、そして「データベース」に自分自身を設定すること。議論の側では、データベースの欠点は何ですか? XMLの使用について言及しましたが、データは半構造化されているだけですか?もしそうなら、なぜXMLをSQLデータベースに保存しませんか?この単純な何かを設定することは、一般に「負担」とは見なされません。ほとんどの標準。シンプルなWebサービスは、Silverlightクライアントと設定データベースの間の仲介役として機能できます。

オフライン中にユーザーが自分の設定にアクセスできることが重要な機能である場合、分離ストレージが最適です。ユーザーが隔離されたストレージをオフにしても設定を保存できることがより重要な場合(これは本当に問題ですか?これでYAGNIを呼び出したくなりますが、Silverlightプラットフォームの経験はそれほどありません。) 。)その後、データベースをホストする必要があります。両方が重要な場合は、おそらく何らかのハイブリッドソリューションを検討しています。可能な場合は分離ストレージを使用してから、データベースにフォールバックします。

つまり、アプリケーションのニーズは、抽象的なベストプラクティスよりも重要だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top