2010-12-15 12 views
0

私は、読み込むのに約2〜3分かかるクラスを扱わなければなりません。このオブジェクトはSilverlight/ASP/WCFプロジェクトのサーバー側にあります。ロードされると、このオブジェクトには、何らかの計算を実行するために使用される5 000 000個の小さなオブジェクトのリストが含まれます。Silverlight/ASP.NET/WCFプロジェクトのラージオブジェクト?

ユーザーは、アプリケーションの読み込み中に2〜3分待つことはありますが、何かを計算するたびにもう一度待機したくないという心配はありません。

私のオプションについてのご意見をお待ちしております。

オプションA:ラージオブジェクトをセッション変数に保存します。セッション変数が毒であると主張する人もいます。特に大きなオブジェクトで使用する場合はそうです。本当に悪いですか?

オプションB:作成:共有する方法を見つけるか、セッション

オプションC(この1つは働くだろう...しかし、それは完璧ではない)との間に、このオブジェクトを複製し、その後、サーバー起動ラージオブジェクトをロードします時間のかかるクラスから5 000 000オブジェクトをコピーする2番目のオブジェクトがクライアント側に送信されます。しかし、このソリューションは完璧ではありません。その5,000,000個のオブジェクトは、クライアント側で「現状のまま」アクセス可能ではない賢明なデータであるからです。

+0

クライアントに5,000,000個のオブジェクトをコピーすることが理にかなっていることの手掛かりを提供できますか?データがすでに存在するサーバー上で計算を実行できませんか? –

+0

サーバー側で計算を実行することは、私がやりたいことです。そのため、オプションAまたはオプションBを使用するのはそのためです。オプションCは回避策に似ています。 –

+0

サーバーで送信したデータは暗号化できますが、データをクッキーに保存するとオブジェクトもシリアル化する必要があります。クッキーにはスペースが限られています。 –

答えて

1

あなたは3つの方法を出して、最初と2番目の方法は、seesionを使用して、私は彼らが良い考えではないと思う。

大きなメモリがあれば、クラスを静的クラスに変更することができます。静的クラスはそれをインスタンス化しないためです。

または キャッシュを使用してインスタンスをキャッシュできます。

+0

私は静的クラスのソリューションが本当に好きです!そしてそれは私のクラスに多くの変更を加えることはありません(静的に変更する/スレッドセーフにする) –

関連する問題