L'architecture à N niveaux a généralement chaque couche séparée par le réseau. IE la couche de présentation se trouve sur certains serveurs Web, puis qui communique avec les serveurs d'applications principaux sur le réseau pour la logique métier, puis qui communique avec un serveur de base de données, à nouveau sur le réseau, et peut-être que le serveur d'applications appelle également certains services distants ( dire Authorize.net pour le traitement des paiements).
MVC est un modèle de conception de programmation dans lequel différentes parties de code sont responsables de la représentation du modèle, de la vue et du contrôleur dans certaines applications. Ces deux choses sont liées car, par exemple, la couche Model peut avoir une implémentation interne qui appelle une base de données pour stocker et récupérer des données. Le responsable du traitement peut résider sur le serveur Web et appeler à distance des serveurs d'applications pour récupérer des données. MVC résume les détails de la mise en œuvre de l'architecture d'une application.
N-tier se réfère simplement à la structure physique d'une implémentation. Ces deux éléments sont parfois confondus car une conception MVC est souvent implémentée à l'aide d'une architecture N-tier.
Si une conception à 3 niveaux était comme ceci:
le modèle MVC serait:
Qui veut dire:
Le client PS serait la vue et le milieu du contrôleur
la source
Voici ce que l' on dit de l' architecture n-tier
la source
La seule similitude est que les deux modèles ont trois cases dans leurs diagrammes. Fondamentalement, ils sont complètement différents dans leurs utilisations. En fait, ce n'est généralement pas un choix entre le modèle à utiliser, mais les deux modèles peuvent être utilisés ensemble de manière inoffensive. Voici une bonne comparaison des deux: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
la source
Une règle fondamentale dans l'architecture à trois niveaux est que le niveau client ne communique jamais directement avec le niveau de données; dans un modèle à trois niveaux, toutes les communications doivent passer par le niveau middleware.
C'est une architecture de ligne. Cela répond à la question de savoir comment transmettre des informations entre un utilisateur et une base de données. Là où MVC est une architecture triangulaire: la vue envoie des mises à jour au contrôleur, le contrôleur met à jour le modèle et la vue est mise à jour directement à partir du modèle. Cela répond aux questions sur la façon dont une interface utilisateur gère les composants à l'écran.
la source
@Cherry Middleware fonctionne plus comme un gestionnaire de requêtes ou un redirecteur dans MVC Pattern.
Je voudrais expliquer un peu MVC, selon moi, Model View Controller fonctionne comme ça.
C'est tout à propos de MVC que je connais.
la source
Accordez-vous une pause. Et ne vous limitez pas à certains schémas lorsque vous résolvez des problèmes du monde réel. N'oubliez pas quelques principes généraux, dont l'un est la SÉPARATION DES PRÉOCCUPATIONS .
la source
En plus d'être linéaire, une autre différence majeure qui n'a pas été suffisamment soulignée ici est que dans le modèle N-tiers, N n'est pas nécessairement 3-tiers! Il est le plus souvent implémenté en trois niveaux (présentation, application, données), la couche intermédiaire ayant deux sous-niveaux (logique métier et accès aux données). En outre, le modèle dans MVC peut contenir à la fois des données et une logique métier pour la manipulation de données, alors que ceux-ci se trouveraient dans des niveaux distincts dans n-tiers.
la source
Une architecture N-Tier est mieux définie à l'aide d'un diagramme de déploiement.
Une architecture MVC est mieux définie à l'aide d'un diagramme de séquence.
Les 2 ne sont pas les mêmes et ne sont pas liés et vous pouvez combiner les deux architectures ensemble. De nombreuses entreprises ont pris les mesures nécessaires pour créer une architecture N Tier, non seulement pour le déploiement et l'évolutivité, mais également pour la réutilisation du code.
Par exemple, vos objets Entité commerciale peuvent devoir être utilisés par une application de bureau, un service Web exposé pour un client, une application Web ou une application mobile. Le simple fait d'utiliser une approche MVC ne vous aidera pas du tout à réutiliser quoi que ce soit.
la source
Conclusion: N-tier est une architecture, MVC un modèle de conception. Ce sont la même métaphore appliquée dans deux domaines différents.
la source
Jerry: Voici un exemple simple de la façon dont les deux sont liés:
Niveau 1 - Se compose de modèles qui communiquent avec le niveau 2 via une sorte de service réseau ou similaire, des contrôleurs pour gérer la validation des entrées, les calculs et autres éléments pertinents pour les vues. Et il contient les vues elles-mêmes, bien sûr - qui peuvent être l'interface graphique dans une application de bureau ou l'interface Web dans une application Web.
Niveau 2 - Contient une sorte de service ou une autre façon de recevoir des messages du niveau 1. Ne sait pas / ne devrait pas connaître le niveau 1, donc ne peut répondre qu'aux appels d'en haut - ne jamais demander les choses par lui-même. Contient également toute la logique métier.
Niveau 3 - Contient le modèle de domaine, la représentation objet de la base de données et toute la logique pour communiquer et mettre à jour les entrées de la base de données.
la source
Dans un modèle à trois niveaux, toutes les communications doivent passer par le niveau intermédiaire. Conceptuellement, l'architecture à trois niveaux est linéaire. Cependant, l'architecture MVC [model-view-controller] est triangulaire: la vue envoie des mises à jour au contrôleur, le contrôleur met à jour le modèle et la vue est mise à jour directement à partir du modèle.
la source