66 votes

MVC ou architecture à 3 niveaux ?

Quelle est la différence fondamentale entre l'architecture MVC et l'architecture à trois niveaux ?

33voto

F. Farjaminejad Points 181

3 niveaux est un Style d'architecture et MVC est un Modèle de conception .

alors c'est différent en cela.

mais nous pourrions utiliser le modèle mvc dans le style d'architecture 3-tiers.

donc :

Niveau de présentation : "Contrôleurs et vues" du modèle MVC.

Niveau d'activité : "Modèle(Données)" du modèle MVC.

Niveau d'accès aux données : Niveau d'accès aux données originales.

28voto

Michael Shimmins Points 12740

Dans les applications plus importantes, MVC est le seul niveau de présentation d'une architecture à N niveaux. Les modèles, les vues et les contrôleurs ne s'occupent que de la présentation et font appel à un niveau intermédiaire pour alimenter les modèles avec les données du niveau des données.

MVC peut également être utilisé comme l'ensemble de l'architecture à 3 niveaux où les vues sont votre présentation, les contrôleurs sont votre logique d'entreprise et les modèles sont votre couche de données (généralement générée par un DAL tel que Entity Framework).

Dans l'idéal, cependant, vous voulez que vos contrôleurs soient minces et muets, et qu'ils transmettent la logique à un "composant métier", qui deviendrait essentiellement votre niveau intermédiaire.

17voto

Ali Parvini Points 71

Dans l'architecture à 3 niveaux, la communication entre les niveaux est bidirectionnelle. Dans le MVC, la communication est unidirectionnelle ; on pourrait dire que chaque "couche" est mise à jour par celle de gauche et, à son tour, met à jour celle de droite - où "gauche" et "droite" sont simplement illustratifs.

L'architecture à 3 niveaux est généralement déployée sous forme de 3 processus distincts sur 3 nœuds de réseau distincts. Mais MVC est conçu pour être déployé sous la forme d'un seul processus dans un seul nœud de réseau. (comme une application de bureau)

Le niveau métier dans un système 3-tiers contient généralement différentes couches mettant en œuvre des modèles célèbres tels que le délégué métier, la façade métier, l'objet métier, le localisateur de services, l'objet de transfert de données, etc. Mais MVC est un modèle de conception lui-même qui est utilisé dans le niveau de présentation.

L'objectif du 3-tiers est de séparer la logique métier du client et de la base de données, afin de fournir des protocoles clients multiples, une grande évolutivité, un accès aux données hétérogènes, etc. Mais l'objectif principal de MVC est que les changements d'implémentation dans une partie ne nécessitent pas de changements dans une autre.

12voto

Imran Rashid Points 686

J'adopte une approche différente par rapport à ce que Michael a dit dans sa réponse.

Les contrôleurs ne sont jamais destinés à être votre logique d'entreprise. Pour moi, la logique métier appartient à la couche modèle. Et bien que les vues (et dans une certaine mesure les contrôleurs) fassent partie de la couche présentation, le modèle n'en fait jamais partie dans une application MVC. Le modèle doit être le cœur et l'âme d'une application MVC et c'est ce qu'est la conception pilotée par le domaine, qui peut être facilement mise en œuvre dans une application MVC.

N'oubliez pas que le modèle ne doit pas nécessairement se trouver dans le même projet (dans le cas d'ASP.NET MVC). Il peut résider dans un projet entièrement différent et peut toujours servir de modèle à l'application.

Une application MVC agissant comme une couche de présentation uniquement peut fonctionner dans un énorme projet avec de nombreux niveaux, mais elle ne peut jamais agir comme une couche de présentation uniquement dans une architecture à 3 niveaux, ce qui est ce que le questionneur a demandé.

Nous pouvons donc dire que MVC fait deux (la troisième peut être la couche de données qui ne fait pas vraiment partie de l'architecture MVC en soi) des trois couches d'une architecture à trois niveaux.

Merci.

7voto

user851253 Points 51

Qu'est-ce qu'une architecture à 3 niveaux ?

Trois niveaux (couches) est un architecture client-serveur dans lequel l'interface utilisateur, le processus métier (règles métier) et le stockage et l'accès aux données sont développés et maintenus en tant que modules indépendants ou, le plus souvent, sur des plateformes distinctes. Fondamentalement, il y a 3 couches, la couche 1 (couche de présentation, couche GUI), la couche 2 (objets d'affaires, couche logique d'affaires) et la couche 3 (couche d'accès aux données). Ces couches peuvent être développées et testées séparément.

DAL - Couche d'accès aux données (elle comprend la chaîne de connexion et le processus de lecture et d'exécution des données).

BOL - Bussiness Object Layer (il y a des requêtes)

UI - Interface utilisateur ( Formulaires et code derrière )

Plus de détails : Architecture à 3 niveaux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X