DTO - Les objets de transfert de données sont exactement comme il le dit, des conteneurs pour le transfert de données. Ils n'ont aucun comportement mais simplement un groupe de setters et de getters. Certaines personnes les rendent immuables et en créent simplement de nouvelles au besoin plutôt que de mettre à jour celles existantes. Ils doivent être sérialisables pour permettre le transfert sur le fil.
En général, les DTO sont utilisés pour expédier des données d'une couche à une autre à travers les limites du processus, car les appels à un service distant peuvent être coûteux, de sorte que toutes les données requises sont poussées dans un DTO et transférées au client en un seul morceau (à gros grains).
Cependant, certaines personnes utilisent la notion de DTO liés à l'écran (rien à voir avec le franchissement des limites de processus). Encore une fois, ceux-ci sont remplis avec les données requises (généralement les données requises pour un écran particulier et peuvent être une agrégation de données provenant de diverses sources) et envoyées au client.
http://blog.jpboodhoo.com/CommentView,guid,21fe23e7-e42c-48d8-8871-86e65bcc9a50.aspx
Dans des cas simples, comme cela a déjà été indiqué, ce DTO peut être utilisé pour la liaison à la vue, mais dans les cas plus complexes, il nécessiterait la création d'un ViewModel et le déchargement des données de DTO vers ViewModel, ce qui est évidemment plus de travail (lors de l'application du modèle MVVM) .
Encore une fois, comme déjà indiqué DTO! = ViewModel
et
DTO et ViewModel ont des objectifs différents dans la vie