典型的なシナリオ。私たちは、サーバーファームと複数の分散とローカルクライアント間の通信のために内部古い学校のXML Webサービスを使用します。第三者は関与しません。当社とお客様が使用するアプリケーションのみ。WCF - ドメインオブジェクトとIExtensibleDataObject
我々は現在、WCF /オブジェクトベースモデルにXMLのWSから移動熟考していると、様々なアプローチで実験されています。それらのうちの1つは、ドメインオブジェクト/集約をワイヤ上で直接転送し、おそらくそれらにDataContract属性を呼び出します。
DataMembersのOrderプロパティを使用してIExtensibleDataObjectとDataContractを使用することで、単純なプロパティのバージョニングの問題に対処できます(すべてのクライアントを制御し、簡単に強制的に更新できます)。
私たちは、ワイヤの上に専用の、転送専用のデータ転送オブジェクト(DTO)を使用する必要があることを聞いておきます。
なぜですか?そうする理由はまだありますか?私たちは、サーバー側とクライアント側で同じドメインモデルを使用します。もちろん、権利と "必要"とみなされる場合にのみ、コレクションを事前に埋め込みます。コレクションプロパティは、サービスロケータの原則とIoCを使用して、Hibernateベースの "サービス"(サーバー側)を直接フェッチするか、クライアント側のWCF "サービス"クライアントを呼び出してWCFサーバーファームと通信します。
だから、なぜDTOを使用する必要がありますか?私の経験のDTOで
ええ、akmad、これはまさに私が持っている考えのようなものです。私たちはおそらく、適切なところで純粋な「エンティティ」を転送するが、より純粋なビジネスプロセス型呼び出しのためのコマンドベースの「メッセージ」フォーマットを実行するというアプローチをとるだろう。 – HenningK