Question

Je suis en train d'écrire un document de conception et les gens de mon équipe sont prêts à faire le passage de ASP.NET WebForm vers ASP.NET MVC. Cela tombe bien, mais j'ai du mal à comprendre comment MVC workswith dans un 3-tier (couche de données, couche d'affaires et couche de présentation) Architecture. Peut-on dire que le modèle, vue et le contrôleur font partie de la couche présentation? Est-ce la partie modèle de la couche d'affaires?

En bref, comment MVC et l'architecture 3-tier peuvent travailler ensemble? Merci pour l'aide!

Était-ce utile?

La solution

Je considère ASP.Net MVC d'être dans la couche de présentation. Les classes « modèle » qu'elle utilise sont vraiment des modèles View, qui décrivent les structures de données nécessaires à votre point de vue. Tous votre logique métier et l'accès aux données doivent rester séparés de vos modèles et contrôleurs MVC.

En outre, le général « meilleures pratiques » pour MVC est de garder le code du contrôleur aussi simple que possible, ce qui signifie généralement l'introduction d'autres pour des services d'application dans votre couche d'affaires que les poignées le levage de charges lourdes.

Autres conseils

La couche présentation est votre vue.

La couche de données est votre modèle (recommander regardant le modèle du référentiel).

La couche d'affaires reste ce qu'il est.

Le contrôleur peut appeler la couche métier pour la fonctionnalité lorsque l'objet est chargé, ou le modèle peut appeler la couche métier pour une fonctionnalité spécifique lorsqu'une ViewModel est demandée, mais sinon, il reste le même.

Le contrôleur ne doit pas avoir une logique d'affaires expansive en elle - le mettre dans sa propre DLL autonome

.

est assez subjective. Faire ce qui fait sens à votre équipe.

MVC peut être assez flexible et presque pas de framework MVC, dans toutes les langues, fait les choses de la même façon. Même dans l'espace .net. FubuMVC, Spring.net et MS MVC tous faire des choses de façon légèrement différente.

D'abord, vous ne devez pas changer de MVC juste parce que ... Si vous avez quelque chose qui fonctionne, je ne pense pas que vous devez.

Mais vous question, le modèle dans le modèle MVC est une sorte de classe qui représente votre problème commercial, Wich peut être une sorte de calcul, les règles métier ou classes d'accès aux données. Dans le cadre MVC il y a un dossier comme un moyen de proposer une solution pour vous, afin que vous puissiez mettre vos classes de modèle là-dedans, mais vous n'avez pas, vous pouvez créer différents projets résoudre afin que vos problèmes d'affaires et c'est votre modèle. Donc, ici, vous pouvez définir tout autre boniment que vous pour Instante, vous pouvez utiliser le modèle du référentiel et implemente que l'utilisation de NHibernate ou Entity Framework.

Les vues ne sont que des pages Web pour afficher et recevoir des informations et de l'utilisateur.

Et le contrôleur est l'entrée de votre application, les classes qui vont recevoir les demandes, appelez les modèles nécessaires et redirect à la vue spécifiée.

L'espoir je pouvais aider.

N-Tier avec MVC fonctionne très bien. Il suffit de suivre le principe solide et plusieurs autres et vous serez en mesure de garder votre application à couplage lâche et cohérente.

Je dirais que la lecture des livres sur MVC 3 et regarder des vidéos de pluralsight.com sont vos plus grandes ressources. Vous ne pouvez pas aller avec « faire ce qui fonctionne pour votre équipe. » Si disons collègues de travail nommé Johnny et Timmy veulent mettre un tas de logique dans un contrôleur, juste parce que dans la ruée vers l'échéance à court terme qui « fonctionne pour votre équipe » qui ne fait pas droit / bon / smart.

J'ai trouvé tant de mauvais articles sur Internet qu'il est effrayant de voir combien de personnes sont se conduit sur une route sombre de la misère. Suivez le chemin heureux. Utilisez stackoverflow pour avis comme l'art, mais il faut vérifier avec les articles msdn, livres mvc et pluralsight.com

Je sais qu'il est juste un lien Wikipedia, mais il y a quelques infos concernant n-tier par rapport à l'architecture MVC.

A "Niveau" est une unité de déploiement, tandis qu'une "couche" dans MVC est une séparation logique de la responsabilité du code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top