私は 3.5 SP1 プロジェクト、Silverlight 3 クライアントによる消費に限定された WCF サービスを持っています。ビジネス要件のため、WCF 側で SQL Server を介してハイドレートされ、Silverlight クライアントに送信される大きなオブジェクト グラフを操作する必要があります。それらは深く、2 つのコレクション プロパティを持つクラスがあり、コレクション内の各アイテムにはコレクションが含まれている場合があります。基本的な設計は、私が継承したものであり、短期的には動作する必要があります。私たちはどれくらい大きく話しているのですか?一度シリアル化された 250 項目の最上位コレクションの例は、変更 (httpBinding および DataContractSerializer) を使用せずにネットワークに到達すると 14 MB になります。250個のアイテムは小さく、私たちが直面している要件では、10個で作業できる必要があります。私の限られた数学スキルを与えられた000以上のアイテムは、ワイヤーを横切って引っ張るのに500MBをはるかに超えています. 公園を散歩することはできません - 実際、公園を散歩することはできます。
そのため、検討していることはいくつかあります。1 つは、DataContractSerializer から離れて XmlSerializer を使用することです。これにより、これらのプロパティの多くを属性に移動し、ペイロード サイズを削減できます。Binary Xml バインディングも検討しています。
私の質問はこれです、あなたならどうしますか?IIS 圧縮はここで役割を果たすことができますか? DCS から離れるのは悪い考えですか? より良いテクニックはありますか?パドルなしで小川を上っていますか?