典型的なシナリオ。internallyサーバー ファームと複数の分散クライアントおよびローカル クライアントとの間の通信には、昔ながらの XML Web サービスを使用します。サードパーティは関与せず、自社と顧客が使用するアプリケーションのみを使用します。
XML WS現在、モデルへの移行を検討しWCF/object-basedており、さまざまなアプローチを試しています。そのうちの 1 つは、ドメイン オブジェクト/集合体をワイヤ経由で直接転送し、それらの DataContract 属性を呼び出す可能性があります。
で Order プロパティを使用するIExtensibleDataObjectことにより、単純なプロパティのバージョン管理の問題に対処できるはずです (すべてのクライアントを制御し、簡単に強制更新できることを思い出してください)。DataContractDataMembers
DTOs専用の転送専用のデータ転送オブジェクト ( ) をネットワーク経由で使用する必要があるとよく耳にします。
なんで?それでもそうする理由はありますか?サーバー側とクライアント側で同じドメイン モデルを使用します。もちろん、コレクションの事前入力などは、正しく「必要」と判断された場合にのみ行います。コレクション プロパティは、サービス ロケーターの原則と IoC を利用してNHibernate-based、(サーバー側で) データを直接フェッチする"サービス" と、サーバー ファームWCFと対話するクライアント側の "サービス" クライアントのいずれかを呼び出します。WCF
では、なぜ を使用する必要があるのDTOsでしょうか。