J'ai récemment commencé à lire sur ASP.net MVC et après avoir excité au sujet du concept, j'ai commencé à migrer tout mon projet webform à MVC, mais je vais avoir un mal en gardant mon contrôleur maigre même après avoir suivi tous les bons conseils là-bas (ou peut-être que je ne comprends pas ...). Le site dont je me occupe a des articles, des vidéos, des citations ... et chacune de ces entités ont des catégories, des commentaires, des images qui peuvent être associés. J'utilise LINQ to SQL pour les opérations de base de données et pour chacune de ces entités, j'ai un dépôt, et pour chaque dépôt, je crée un service à utiliser dans le contrôleur.Architecting ASP.net MVC App utiliser des référentiels et services
donc j'ai -
- ArticleRepository
- ArticleCategoryRepository
- ArticleCommentRepository
et le service correspondant
- ArticleService
- ArticleCatégorieService ...
vous voyez l'image. Le problème que j'ai est que j'ai un contrôleur pour l'article, la catégorie et le commentaire parce que je pensais qu'avoir ArticleController gérer tout cela pourrait avoir du sens, mais maintenant je dois passer tous les services nécessaires au constructeur du contrôleur. Donc, je voudrais savoir ce que je fais mal. Mes services ne sont-ils pas conçus correctement? devrais-je créer un service plus grand pour encapsuler des services plus petits et les utiliser dans mon contrôleur? ou devrais-je avoir un contrôleur de catégorie d'article et un contrôleur de commentaire d'article?
Une page vue par l'utilisateur est faite de tout cela, de l'article à voir, des commentaires qui y sont associés, d'une liste des catégories auxquelles elle s'applique ... comment puis-je répartir efficacement le contrôleur sur le garder "maigre" et résoudre mon mal de tête?
Merci! J'espère que ma question ne soit pas trop longue pour être lu ...
Mes contrôleurs ont actuellement 6-10 + dépendances que je passe au constructeur. Cela entraîne également des contrôleurs volumineux, mais c'est simplement parce que je montre souvent beaucoup de données provenant de différentes sources au sein d'une seule page et toutes ces données doivent être chargées dans le modèle de vue. –