2009-07-07 7 views
1

J'essaie d'utiliser le modèle de contrôleur de supervision dans une application Web simple. Ma vue est un formulaire d'inscription et comporte de nombreux champs à saisir pour un utilisateur (pensez à plusieurs pages d'inscription à Gmail). Ces données vont peupler une entité, et cette entité est traitée lorsque l'utilisateur l'a soumise.Supervision de la conception du contrôleur de supervision

Par exemple:

public interface ICreateAccountView 
{ 
    string firstname { get; set; } 
    string lastname { get; set; } 
    string loginName { get; set; } 
    string password { get; set; } 
    string addressLine1 { get; set; } 
    string addressLine2 { get; set; } 
    string postCode { get; set; } 
    IList<string> preferences { get; set; } 
    .... Many others omitted 
} 

J'ai quelques questions à ce sujet:

1) Dois-je avoir des propriétés sur moi comme ça quand j'ai tant? Ne devrais-je pas simplement utiliser l'objet entité que je vais remplir de toute façon?

2) Comme ces données finiront par remplir un objet entité si mon contrôleur détient la référence à cet objet?

Toute aide ou conseil serait apprécié.

Répondre

1

Il n'y a aucune raison de ne pas avoir de méthode sur la vue que votre contrôleur peut appeler pour renvoyer toutes les données de vue sous la forme de l'entité. Tant que le contrôleur demande les données, vous devriez être ok!

Maintenant pour les puristes là-bas. Ils préféreraient que vous ne retourniez pas une "entité" de la vue. Au lieu de cela, essayez de renvoyer un objet de vue (ou un objet de transfert de données/dto) afin que la vue ne contienne aucun concept de vos objets de niveau intermédiaire/domaine. Cela dissocie un peu plus la vue de votre niveau métier.

Dépend de la taille de l'application et de la profondeur du motif que vous voulez.

+0

+1 pour "motifs trou de lapin". –