Lorsque Jeremy & Tchad posted about their FubuMvc project, l'un des différenciateurs ils ont mentionné était leur « Thunderdome principal »:Thunderdome MVC- Pourquoi un modèle unique en MVC?
Le « Thunderdome Principe » - Tous les méthodes contrôleur prennent dans un objet ViewModel (ou zéro objets certains cas) et retourner un seul objet ViewModel (un objet entre, un objet quitte). Les classes Controller ne seront JAMAIS directement exposées à tout ce qui est lié à HttpContext. Rien ne me fait pleurer comme voir les gens qui essaient d'écrire des tests qui se moquent ou stub cette nouvelle interface IHttpContextWrapper . De même, les méthodes du contrôleur ne renvoient pas d'objets ViewResult et sont généralement découplées de de toute l'infrastructure MVC. Nous adopté cette stratégie très tôt comme une façon de rendre le contrôleur de test plus simple mécaniquement. C'est certainement atteint cet objectif, mais il est également fait le code du contrôleur très simplifié et facile à lire. Nous allons expliquer comment cela fonctionne à KaizenConf.
Quel est l'avantage de leur 'un ViewModel (ou zéro) dans' approche?
D'accord, je peux certainement acheter les avantages d'être juste une convention. Je vais donner à ce modèle une chance sur l'un de mes prochains projets. – Troy
Avoir 16 paramètres pour tous les contrôleurs est aussi une convention. La Convention en soi n'est pas nécessairement une bonne chose. – liammclennan
@liamclennan C'est correct. Des conventions intelligentes pourraient être une meilleure façon de le décrire. Heureusement, personne ne préconisait des conventions stupides, mais merci de le signaler :) – chadmyers