2008-09-18 27 views

Répondre

3

Les DTO ne sont pas un problème de performance. Je pense que ce que vous demandez concerne les implications de la hiérarchisation sur les performances. En particulier, en utilisant un niveau d'application entre votre niveau Web (serveur Web) et le niveau de données (serveur de base de données).

Généralement, les implications sont que la latence est augmentée (vous avez des allers-retours réseau supplémentaires), mais vous gagnez une capacité supplémentaire en répartissant la charge entre les machines.

Une autre raison courante (encore une fois, non-performance) que les gens feraient est de leur permettre de placer le serveur web dans la zone démilitarisée tout en gardant les serveurs d'application et de base de données dans le pare-feu.

Une autre raison possible (non-performance) est la possibilité de connecter plusieurs interfaces utilisateur au-dessus d'une seule application. Je l'ai fait sur des projets passés avec d'excellents résultats (où l'entreprise l'a exigé).

Aussi, ne sous-estimez pas le travail requis pour maintenir une architecture de cette nature. C'est plus de travail que d'une solution sans niveaux, donc utilisez-la seulement si vous prévoyez en avoir besoin. Cela étant dit, l'utilisation de DTO ne nécessite pas l'utilisation de la hiérarchisation. La meilleure description que j'ai trouvée de la hiérarchisation vient du livre de Martin Fowler, Analysis Patterns. Il y a une petite section à l'arrière sur les façades et la hiérarchisation des applications.

Juste pour réitérer la réponse précédente, les DTO ne sont pas une préoccupation de performance. C'est juste une classe sans méthodes utilisées pour fournir l'isolation entre les différentes parties de votre application.

Je vous suggère également de prendre l'autre livre de Martin, Patterns of Enterprise Application Architecture. Le "pattern" DTO est documenté là.