DTO-データ転送オブジェクトは、データを転送するためのコンテナーです。それらには振る舞いはありませんが、セッターとゲッターの束だけです。一部の人々はそれらを不変にし、既存のものを更新するのではなく、必要に応じて新しいものを作成します。それらは、回線を介した転送を可能にするためにシリアライズ可能でなければなりません。
リモートサービスへの呼び出しは高額になる可能性があるため、必要なすべてのデータがDTOにプッシュされ、1つのチャンク(粗い粒子)でクライアントに転送されるため、通常、DTOはプロセス境界を越えて1つのレイヤーから別のレイヤーにデータを送信するために使用されます。
ただし、画面にバインドされたDTOの概念を使用する人もいます(プロセス境界を越えることとは関係ありません)。繰り返しになりますが、これらには必要なデータ(通常、特定の画面に必要なデータであり、さまざまなソースからのデータの集約である可能性があります)が入力され、クライアントに送信されます。
http://blog.jpboodhoo.com/CommentView,guid,21fe23e7-e42c-48d8-8871-86e65bcc9a50.aspx
既に述べたように単純なケースでは、このDTOはビューへのバインドに使用できますが、より複雑なケースでは、ViewModelの作成とDTOからViewModelへのデータのアンロードが必要になるため、明らかに作業量が多くなります(MVVMパターンを適用する場合)。 。
したがって、すでに述べたように、DTO!= ViewModel
そして
DTOとViewModelの人生の目的は異なります