Meilleure structure pour la solution ASP.NET MVC
J'ai essayé de structurer mon dernier non négligeable de projet MVC à la suite d'une approche des meilleures pratiques, mais qui n'ont pas tout à fait comprendre ce que je faisais.
Il a un Données, des Affaires et du Web (MVC), mais les contrôleurs de contenir la plupart du code, la couche de Données utilise NHibernate et a un peu de référentiels responsable de trop de choses, et la couche de gestion est un dépotoir pour tout ce qui n'appartient pas dans les deux autres projets. Il fonctionne, mais je pense qu'il pourrait avoir été le programme d'installation de mieux - les principales choses que je n'aime pas, ce sont les gros contrôleurs et les référentiels.
Je commence un nouveau projet qui pourrait pousser à être d'une taille décente, je suis donc passer un peu plus de temps à essayer d'obtenir mon design sur le devant. Après avoir lu un peu plus, je suis en train de disposer d'un référentiel par agrégat de la racine, et ensuite avoir un service dans la couche de gestion pour chaque contrôleur de la couche de présentation.
Mes espoirs ont été que l'essentiel du code irait dans les services, et ceci couplé avec les petits dépôts permettrait de garder mon contrôleurs et les données de la couche mince. Jusqu'à présent cependant, ce n'est pas le cas.
Tout ce que j'ai lu suggère que les Modèles de Vue ne doit pas être retourné à partir de la couche de gestion, et doit être renseignée dans la couche de présentation, donc pour le moment ma couche de service est principalement passant modèles de ma couche de données grâce à la couche de présentation qui fait ce qu'il doit préparer les modèles de vue. Donc, j'ai encore de la graisse contrôleurs, en plus d'une mince affaires et de la couche de données.
Ma couche de présentation aussi connaît à la fois mon métier et les données de la couche, mais je pensais que la partie de la pointe de cette séparation était de réduire le couplage?
Ai-je eu ce tort et à travers? Dois-je arrêter d'essayer de suivre aveuglément ce que j'ai lu sur internet et il suffit de préparer des modèles de vue de la couche de gestion afin que je puisse déplacer la majeure partie de mon code? Dois-je revenir à la classique ASP? 🙂
source d'informationauteur littlecharva
Vous devez vous connecter pour publier un commentaire.
le guide principal que j'utilise quand je suis en train de monter un projet, de la structure est de s'assurer que je peux ajouter quelques operationcontract attributs de la couche de logique, et ensuite l'hôte comme un service wcf.
Si je peux le faire, cela signifie que la couche de logique a isolé ma couche de données, et est en interaction avec son client en passant simple des structures et des entités. le datalayer est complètement cachée.
Donc mon habitude structure ressemble:
Donc, dans cette structure, mon projet mvc n'a jamais traite de l'activité de l'espace de noms et les communes de l'espace de noms.
Lors de l'interaction avec les entités cependant, j'ai tendance à utiliser mes propres modèles dans le projet mvc pour me permettre d'ajouter des annotations et avant la fin de fonctionnalités spécifiques, puis-je fournir des conversions implicites de ces modèles afin de pouvoir être utilisé de façon interchangeable avec les entités métiers.
HTH