2009-07-28 3 views
1

私はどの方が速いか知りたいです。シナリオを教えてください。私は、LAN上だ(我々はバージョンがの2005を言わせて必要な場合は)SQL Serverデータベースからのデータを使用して構築するためのレポートを持っているとの報告が行われ得るためのこれらの方法があります。XMLまたはDataTablesのどちらを送信するのが最も高速ですか?

  1. は、Webサービスを持っていますサーバーでは、データがサーバーから取得され、XMLにシリアライズされます。クライアントは、このXMLをクライアントマシンに組み込まれているレポートのソースとして使用します。クライアントはWindowsフォームアプリになります。

  2. クライアント側から、ADO.Netを使用してデータベースに接続し、DataTableを取得し、クライアントに組み込まれたレポートのソースとして使用します。

  3. (2)と同じですが、DataReaderを使用しています。

また、これを行うより良い方法がありますか?

+0

これはASMX Webサービス、またはWCFですか? –

答えて

3

XMLへのシリアライズは、それを実行するのにかかる時間、XML構造のオーバーヘッド、およびデシリアライズする時間の両方でコストがかかることになります。しかし、それはより多くの技術によって消費可能なフォーマットを提供するでしょう。 .NETをエンドツーエンドで使用していて、変更される可能性が低い場合は、XMLを使用せず、フレームワーク提供のデータアクセスメソッドを使用します。個人的には、おそらくLINQをDataTableまたはDataReaderよりも使用しますが、パフォーマンス面での利点よりも、クライアント側での使いやすさと可読性を高めるためです。

2

Webサービスのインターフェイスで.NET固有の型を使用しないことをお勧めします。今日、あなたのサービスが.NETプログラム以外のものによって呼び出されることはないと確信していても、状況は変わります。明日は、サービスがPerlプログラムによって呼び出されることが伝えられます。

PerlプログラムはDataSetを認識しません。 Javaプログラムや.NET以外のものもありません。

転送する必要があるデータだけを含むデータ転送オブジェクト、プリミティブ型の単純プロパティ、プリミティブ型のコレクションまたは配列、データ転送オブジェクトのコレクションまたは配列などを作成することをお勧めします。任意のクライアントが理解できるようになります。

+0

私はそれについて知らない。あなたが知っているもののためのデザイン。おそらくそうでないときに、敵のXMLを書く時間を費やさないでください。私は相互運用性のファンですが、私はすぐに必要ではない何かに時間を無駄にしないという大きなファンです。ビジネス上の価値がない場合は、しないでください。 – geowa4

+0

私はあなたが知っていることのために設計することに同意します。物事は毎日変わるのを知っている。 Webサービスは、相互運用性を持たないようにするコストよりも少しでも相互運用可能であることが分かっています。正当な理由がなくても、すべての道を踏み外してはいけませんが、Webサービスがあなたのための相互運用作業を行うことができるように設計するのは簡単です。 –

関連する問題