Webサービスのデータセットは、悪魔と世界のすべての悪の産物です

(いいえ、私はそれを本当に信じていませんが、それはかなり良いタイトルであることが判明しましたよね?DataSetsは存在する権利がありますが、外部ビジネスオブジェクトまたはWebサービス契約としてではありません)。



バリー・ガービンは、私の「データセットの実行」と、自分の視点を説明しなかったという事実についてコメントしました 。 彼の投稿で、バリーは、.NET以外のプラットフォームと互換性がないため、WebサービスでDataSetを使用できないというHarry Piersonの声明にコメントしました。 これに対して、バリーは答えました。「これは真実ではありません。 DataSetは単なるXMLです。 "もちろん、XMLですが、同じ成功を収めたのは、すべての文がASCII文字のセットであり、誰もが理解する必要があると言えることです。 Webサービス。 まあ、おそらくバリーは理解できるでしょうが、個人的には、私はフランス語の専門家ではありません。 ;)



データセットは果物の花瓶ですが、果物自体ではありません。 果物の代わりに花瓶を本当に手に入れたいですか?



DataSetはオブジェクトですよね? ただし、これはDomainオブジェクトではなく、「apple」または「orange」ではありません。「DataSet」タイプのオブジェクトです。 DataSetは花瓶です (その中にあるものを知っています)。 DataSetは、 を格納する方法を知っているオブジェクトです。 これは、データベースについて多くのことを知っているオブジェクトです。 しかし、私は花瓶を手に入れたくありません。 リンゴなどのドメインオブジェクトを受け取りたい。



「型指定されたデータセットを使用する」とあなたは言います。 「これはオブジェクトと外観と同じです-何らかの形で機能します!」



いや! 型指定されたデータセットは、ドメインオブジェクトではありません。 型付きデータセットは、リンゴの絵が描かれた花瓶です。 「ご覧ください、ここではリンゴの中にあります-それを列に分割しました!」DataSets(型指定されたものを含む)は、優れたドメインモデルの非常に貧弱な代替品です。



Barryは彼のWebサイトでDataSets支持して非常に良い議論をしましたが 、これらの点のそれぞれに同意するかどうかを確認するために、今すぐそれらを分析しません。 これらの引数はすべて、データアクセスレイヤーのデータセットには有効ですが、ビジネスオブジェクトレイヤーには有効ではないことに注意してください。 さらに、多数のDataBindingsを備えたクラシック(イントラネット)クライアントサーバーWinFormsアプリケーションでのDataSetsの有用性を理解しています。



パブリックWebサービスの結果としてDataSetを返すのは悪いです。



では、なぜWebサービスからDataSetを取得しないのでしょうか? DataSets、およびそのシリアル化のXMLには、ドメインモデルに非常に弱く関連する一連の情報が含まれています。 データセットは、デルタ(DiffGrams)にすることができ、データスキームを含む場合と含まない場合があります。 いずれにしても、それらは「データセット」です。 これらは常に同じタイプのオブジェクト、つまりDataSetです。 ただし、このデータ型をサポートしないプログラミング言語(たとえば、同じJava)が多数あります。 DataSetは、その性質上、遅延バインドされたオブジェクトです。 型指定されたDataSetでさえ、Rows ["Apple"]を呼び出すときに、常にSqlDataTypesと通常のCLR型の間で値型を変換します。 DataSetsはVariantクラスに相当するクラスであり、そのオブジェクトは任意のタイプであり、XMLでシリアル化できます。 パブリックWebサービスでDataSet型のオブジェクトを返すことは、Javaプログラマーを思いとどまらせ、混乱させ、。



完全に正直に言うと、DataSetの場所が存在するシステムを開発しますが、それは、私のアーキテクチャにとって例外的な価値があると確信している場合のみです。 一言で言えば、みんな、あなたの決定の結果について常に報告します。






これは私の最初の翻訳であり、主に「英語のスキルを向上させる」ために作成されたものですので、翻訳の品質に対するあらゆる批判を喜んで受け入れます。 私は文字通りいくつかのことを翻訳しませんでしたが、その本質を正しく伝えたと思います。

個人的に、私自身は著者の意見を完全には共有していないため、このトピックに関する他の人の意見を聞くのは興味深いでしょう。



All Articles