J'utilise ViewModels avec asp.net MVC3. Une des choses que je suis curieux est de supposer que j'ai une entité nommée Customers et qu'elle a des écrans Add, Edit, Delete. Supposons qu'ils ont tous des propriétés différentes.Quelle approche choisir pour ViewModels?
Par exemple. Ajouter peut avoir un champ d'adresse mais l'écran d'édition n'a peut-être pas d'écran d'édition, la suppression peut uniquement utiliser le nom du client plus que toute autre chose.
Ma question est, comment créez-vous ViewModels pour cela? Allez-vous avec l'approche des ViewModels partagés entre ajouter, modifier et supprimer i.e une seule classe viewmodel qui gère tout pour vous ou préférez-vous créer des classes/page viewmodels? Avantage avec viewmodel partagé: cela réduit le temps de développement et nous pouvons réutiliser les classes. Mais le gros problème avec ceci est que si vous utilisez un outil comme Automapper vous pouvez vous attendre à des résultats pour différents écrans.
Inconvénient avec un seul viewmodel/page est qu'il augmente le temps de développement. Dans quel sens devrais-je aller?
Automapper n'ignore-t-il pas simplement les champs qui sont manquants ou vides d'un ViewModel particulier? –
Que faire si mon viewmodel a ces champs et qu'ils sont null? Il assignera alors des nulls à mes entités et ma base de données sera inondée de colonnes avec des valeurs nulles. – Jaggu
@Jaggu: Pourquoi les valeurs seraient-elles nulles? Ne sont-ils pas peuplés par la DB, plutôt que par la vue? Quelles sont les deux classes que vous mappez ensemble, et quelles valeurs peuvent être nulles (dans chaque cas)? –