Je suis d'accord avec crunchdog-- pour toutes les applications web, sauf les plus triviales, vous devriez avoir une forme aplatie de vos objets métier spécifiquement pour votre couche UI/vue. Parfois, cela s'appelle une classe de modèle de vue et ne contient généralement pas plus de plusieurs propriétés de chaîne que la couche d'interface utilisateur peut obtenir et mettre à directement sans se soucier de la validation. (Voir asp.net mvc)
D'une part, ce qui maintient le nettoyeur de la couche d'interface utilisateur et plus simple, laissant pour le mettre ses efforts vers l'affichage des données plutôt que de traverser des structures d'objets, de vérification et l'interprétation des valeurs nulles, etc.
Cela a également donne à la couche de gestion la possibilité de valider ces valeurs de chaîne, en retournant les valeurs telles qu'elles sont entrées si elles ne sont pas valides. Cela peut sauver la frustration de codage lorsque, par exemple, votre serveur doit gérer une date invalide dans un champ de date. La couche de gestion, reconnaissant les valeurs non valides, peut les renvoyer exactement telles qu'elles sont reçues avec les messages d'erreur appropriés. Si tout ce que vous avez traité était des objets métier/domaine, certaines valeurs entrées peuvent ne pas toujours correspondre aux objets destinés à les contenir.
Il peut également être utile de définir une classe pour le mappage des valeurs entre les objets métier/domaine et le modèle d'objet/vue d'interface utilisateur. Cela permet de conserver les préoccupations de la couche de gestion séparément.
merci à tous pour vos commentaires - très apprécié – Nick