2011-01-06 3 views
0

私はVisual Studio 2010でWebサービスを作成しています。データセット(厳密に型指定されたもの)を返す場合、別のプラットフォームの誰かがこのエンドポイントにアクセスし、必要に応じてXMLを使用できますか?Webサービスから返されるデータセットはクロスプラットフォームで相互運用可能ですか?

私の選択肢には何がありますか?

EDIT:DataTableを返却するとどうなりますか?私は何らかの理由でこれに対してDataSetを優先して推奨するmicrosoftを読んでいます

答えて

0

はい、クロスプラットフォームのコーダーは引き続きXMLを読むことができますが、これは最善の選択肢ではありません。 Scott Hanselman says:Webサービスから

返すデータセットは、サタンのスポーンで、2列と2で、すべてのそれは1つのテーブルを含む単純なデータセットのために生成されたXMLがある世界。ここ

で本当に悪で表します記録:

<?xml version="1.0" standalone="yes"?> 
<NewDataSet> 
    <Table1> 
    <Column1>hello</Column1> 
    <Column2>world</Column2> 
    </Table1> 
    <Table1> 
    <Column1>hello</Column1> 
    <Column2>greg</Column2> 
    </Table1> 
</NewDataSet> 

あなたのクロスプラットフォームコーダは、データが複雑な場合は特に、非常に厄介になることができ、XMLを解析する必要があります。

DataSetは実際にデータベースを表現しています。うまく設計されたレイヤードアプリケーションでは、データアクセスレイヤーでのみ使用する必要があります。次に、データベースについては何も知らない、厳密に型付けされたドメイン/モデルオブジェクトに変形する必要があります。

カスタムオブジェクトを使用する方がはるかに優れています。 Ryan Farleys blogでこれを行う方法の例があります。

カスタムオブジェクトを使用する主な利点は次のとおりです。
1.完全に相互運用可能です。
2.強く型付けされています。
3.コンシューマは、XMLの解析/逆シリアル化の責任を負いません。
4.データストレージと消費者間の懸念の分離。

サイドノート:
ウェブサービスが時代遅れになっていることを指摘しておきます。新しいWebサービスを作成する場合は、実際にWCFを使用する必要があります。学習には時間がかかりますが、より豊かで柔軟なプラットフォームです。

+0

そのXMLは、私が期待しているように思えます。カスタムオブジェクトが意味することを説明してください(そして、それがどのような利点をもたらしますか)。 – Jan

関連する問題