テスト2:HTML生成
このプロジェクトでは、Webサービスから取得されたデータはソートされ、若干の書式設定がされたうえでユーザーのブラウザに表示されます。自動生成プロキシクラスを使用する場合は、DataSetをソートしてからDataSet内の行を列挙処理し、Response.Write文を使用して、対象となるデータとHTMLマークアップを出力します。XmlDocumentアプローチの場合は、顧客の提案に従い、XSLTを使用してソートされたXMLデータをHTMLに変換することにしました。
ご推察のとおり、Response.Write文を使用したデータ出力は、XSLTを使用してXMLをHTMLに変換するよりも高速です。下記のグラフは、各アプローチでの実行時間の違いを示したものです。データをソートする場合と、Webサービスに返された順番でデータを出力する場合の両方を示しています。両方のアプローチ間の時間の絶対差はごくわずか(1ミリ秒未満)です。従って、極端に負荷が高い環境でなければ、どちらのアプローチでも十分に有効です。ただ私たちは、DataSetをソートしてResponse.Writeでマークアップを出力する方法の方が好きです。なぜなら、DataSetを扱い、Response.Writeでクライアントにマークアップを出力する方がシンプルなため、XSLTを使用する場合よりもコードの読みやすさと保守性が向上する傾向があるからです。XSLTを使用する場合は、XSLTに精通し、また追加の構文を習得しなければなりません。
これらのテスト結果から分かるのは、Visual Studioの[Web参照の追加]を使用して自動生成プロキシクラスを作成するのは、単に時間の節約になるだけでなく、カスタムクラスからWebサービスを直接呼び出してそのデータをXmlDocumentにロードするよりも実際に効率的であるということです。同様に、Response.Write文によってマークアップをブラウザに直接出力することは、XSLTを使用してXMLをHTMLに変換するより高速です。
それでは、ハッピープログラミング!