2

私はSilverlightを使用したエンタープライズアプリケーションの書き直しに取り組んでいます。プロジェクトはまだ開発の初期段階にありますが、サーバーからいくつかのビジネスオブジェクトのセットをプルするため、アプリケーションの開始時に大量の初期データ負荷が発生します。これらのデータセットの一部は、ユーザーが設定すると変更されることはめったにありません。ユーザーが使用しているすべてのカスタマイズされたデータ型のリストのように。

このような場合は、データオブジェクトを(おそらくシリアル化された形式で)分離ストレージにキャッシュすることを目的としているため、最初のアプリケーションのロード後にサーバーへの非同期呼び出しでデータを取得するのを待つ必要はありません。

分離ストレージは、ユーザー設定などの構成データを保存したり、ブラウザー内バージョンとブラウザー外バージョンのアプリで共有したりすることを目的としています...Cookieストアのように機能します。

私の主な懸念は、分離ストレージがどれほど安全であるかわからないことであり、アプリケーションデータをキャッシュすることを信頼していません。公平を期すために、ユーザーはSilverlight.xapファイルにもアクセスできます。

これは分離ストレージの適切な使用法ですか、なぜまたはなぜそうではありませんか?

4

2 に答える 2

3

警告に慣れている場合は、分離ストレージのフェアユースです。

私の頭の中で最初の注意点は、ユーザーが別のマシンでアプリを起動すると、あるマシンの分離されたストレージに保存したものはすべて利用できなくなるということです。デスクトップにインストールされたアプリよりもWebアプリケーションのモビリティの利点が失われます。ユーザーが自分の設定などの構成に時間を費やすと、Webアプリを表示するために別のコンピューターに切り替えたという理由だけで、ユーザーはそれをもう一度やり直さなければならないことにイライラします。これを解決するには、ユーザーのカスタマイズをクラウドストレージに複製して、ユーザーがWebアプリを実行するために選択したマシンにコピーできるようにする必要があります。分離されたストレージを、クラウドに正式に存在するデータのパフォーマンス最適化キャッシュとして扱います。

Silverlightの分離ストレージは、ファイルシステムのユーザーのプライベートデータ領域のディスクに書き込まれていると思います。\ users\\AppDataまたは同様のもの。これにより、同じマシン上の他のユーザーから隔離されたままになりますが、同じユーザーに対して実行されている他のプログラムからの保護は提供されません。Silverlightの分離ストレージがディスク上で暗号化されているかどうかは思い出せません。私はそれを非常に疑っています。

2つ目の注意点は、Silverlightの分離ストレージにはクォータ制限があり、デフォルトではかなり小さい(1MB)ことです。クォータは、IncreaseQuotaTo()を呼び出すことで増やすことができます。これにより、エンドユーザーは要求を承認するように求められます。

3つ目の注意点は、ローカルストレージをクラウドに存在するデータのキャッシュとして使用する場合は、データの同期を自分で管理する必要があるということです。ユーザーがローカルで変更を加えた場合は、それをクラウド内の権限のストレージにプッシュする必要があります。また、クラウドからローカルキャッシュを更新するタイミングと頻度、および両方が更新された場合の対処方法を決定する必要があります。同時に変更されました(衝突)。

ブラウザのCookieストアは、Silverlightの分離されたストレージを説明するための優れたメタファーではありません。特定のドメインのブラウザCookieは、クライアントからサーバーに対して行われるすべてのhttpリクエストに添付されます。クッキーは常にサーバーに送信されます。Silverlight isostorageのデータには、クライアントマシンで実行されているSilverlightコードにのみアクセスできます。Silverlightやブラウザーによってどこにも送信されることはありません。

Silverlightの分離されたストレージをクラウドデータのローカルキャッシュとして扱うと、問題ないはずです。isostorageを永続的なストレージとして扱うと、Webアプリを使用できるすべての場所でデータが追跡されないため、顧客を怒らせることになります。

于 2010-07-21T17:52:49.003 に答える
1

あなたの話に対する完全な答えではありませんが、考慮すべきデータポイント:

IsolatedStorage の IO 速度に注意してください。高速化にかなりの努力が払われていますが、非常に遅くなる可能性があるため、複数の小さな読み取り/書き込みを行う予定がある場合は、他のオプションを検討することをお勧めします。(または、適切なバッファリング手法を使用して、読み取り/書き込みがより大きく、頻繁に行われないようにします。)

于 2010-07-22T00:12:07.027 に答える