0

私の会社には、フロント エンドを設計しているサード パーティの Web サービスがあります。この Web サービスで使用される「オブジェクト」は非常に大きくなります (作成されたサブエンティティの数によって異なります)。Web サービスは、サブエンティティをコミット/ロードするメソッドを公開せず、完全なオブジェクト階層のみを公開します。

UI 自体は多くのサブ画面に分割され、大量のデータを効率的/簡単に編集できるようにマスター/詳細ビューが表示されます。

問題は、現在見ていないすべてのデータをどこに保存するかです。

大きなレコードの場合、Web サービスのコミットを実行するには最大 30 秒かかるため、断続的なデータ ストレージに Web サービスを使用することは現実的ではありません。

4

1 に答える 1

0

.Net の SessionState をそのまま使用して、SQL 永続性モードを使用して Web サービス データをキャッシュすることを検討できますが、データベースから期限切れのデータを消去する戦略があることを確認する必要があります。SessionState に格納されているすべてのオブジェクトはSerializableである必要があります。

また、外部 Web サービスのエンティティ構造 (たとえば、.Net が追加されたサービス参照によって生成されたシリアライズ可能なプロキシ エンティティ) を使用する代わりに、画面用に独自のカスタマイズされたクラス階層 (つまり、カスタム ビュー モデル) を構築することも検討する必要があります。 Web サービスからの最初のフェッチ後に Web サービス グラフをビューモデルにマップ/投影し、ユーザーがグラフの更新を完了した後に再び Web サービス エンティティに戻すためのブリッジング。この目的には LINQ が最適です。また、Web サービス クラスとプロパティの命名基準から逸脱していない場合は、AutoMapperが最適です。

于 2013-05-22T06:34:51.957 に答える