Question

Je me demandais quelle est exactement la différence entre MVC (ce qui est un modèle d'architecture) et une architecture n-tier pour une application. Je cherchais, mais n'a pas pu trouver une explication simple. Peut être que je suis un peu naïf sur des concepts MVC, donc si quelqu'un peut expliquer la différence qu'il serait alors grand.

hourras

Était-ce utile?

La solution

architecture n-tiers a habituellement chaque couche séparée par le réseau. C'EST À DIRE. la couche de présentation est sur certains serveurs Web, puis que les pourparlers pour back-end des serveurs d'applications sur le réseau pour la logique métier, alors que les pourparlers sur un serveur de base de données, encore une fois sur le réseau, et peut-être le serveur d'application appelle également à certains services à distance (par exemple Authorize.net pour le traitement des paiements).

MVC est un modèle de conception de programmation où les différentes parties de code sont chargés de représenter le modèle, la vue et le contrôleur dans une application. Ces deux choses sont liées parce que, par exemple la couche de modèle peut avoir une implémentation interne qui appelle une base de données pour le stockage et la récupération de données. Le contrôleur peut résider sur le serveur Web, et d'appeler à distance appservers pour récupérer des données. MVC fait abstraction des détails de la façon dont l'architecture d'une application est mise en œuvre.

N-tier se réfère simplement à la structure physique d'une mise en œuvre. Ces deux sont parfois confus parce qu'une conception MVC est souvent mis en œuvre en utilisant une architecture N-tier.

Autres conseils

Si une conception 3 niveaux étaient comme ceci:

Client <-> Middle <-> Data

le crépitement MVC serait:

     Middle
     ^    |
     |    v
Client <- Data

Ce qui signifie que:

  • dans l'équivalent de 3 niveaux, la communication entre les couches est bidirectionnel et passe toujours par le niveau intermédiaire
  • dans le MVC équivalent de la communication est en unidirectionnel ; on pourrait dire que chaque « couche » est mis à jour par celui à gauche et, à son tour, met à jour une à droite -où « gauche » et « droite » sont simplement illustrative

P.S. Client serait Voir et Moyen Controller

est ce que dire sur architecture n-tiers

  

À première vue, les trois niveaux peut   semble similaire à la MVC (Model View   Contrôleur) Concept; cependant,   topologiquement ils sont différents. UNE   règle fondamentale dans un à trois niveaux   l'architecture est le niveau client jamais   communique directement avec les données   étage; dans un modèle à trois niveaux tous   la communication doit passer par le   niveau middleware. conceptuellement   architecture à trois niveaux est linéaire.   Cependant, l'architecture MVC est   triangulaire: la vue envoie des mises à jour à   le contrôleur, les mises à jour du contrôleur   le modèle et la vue est mise à jour   directement à partir du modèle.

La seule similitude est que les deux modèles ont trois boîtes dans leurs schémas. Fondamentalement, ils sont complètement différents dans leurs utilisations. Si fait, il est généralement pas un choix entre quel modèle à utiliser, mais les deux modèles peuvent être utiliser ensemble harmoneously. Voici une bonne comparaison des deux: http: // allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Une règle fondamentale dans l'architecture à trois niveaux est 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.

Il est l'architecture de doublure. Cette adresse la question de savoir comment transmettre des informations entre un utilisateur et une base de données. Où que 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 mis à jour directement à partir du modèle. Cette aborde les questions de la façon dont une interface utilisateur gère les composants à l'écran.

@Cherry Moyen articles fonctionne plus comme un gestionnaire de requêtes ou redirecteur modèle MVC.

Je voudrais expliquer un peu MVC, selon moi Model View Controller fonctionne comme ceci.

  1. Client initie la session en demandant à tout service.
  2. Cette requête est reçue et traitée par le contrôleur (Demande gestionnaire, redirecteur etc)
  3. processus contrôleur d'une information de base sur la demande et la rediriger vers le modèle concerné qui peut remplir la demande de données.
  4. Modèle remplir la demande en fonction des paramètres transmis par le contrôleur et renvoyer les résultats au contrôleur. (Note:. Ici, j'aime clairement que les données ne sont pas directement retourné au client dans la vraie architecture MVC, mais plutôt se remplit et retourné au contrôleur)
  5. Contrôleur qu'envoyer que les données à la vue (client).
  6. Client a le service demandé devant lui.

C'est tout au sujet de MVC que je sais.

Offrez-vous une pause. Et ne vous limitez pas à certains modèles lors de la résolution des problèmes du monde réel. Rappelez-vous quelques principes généraux, dont un est .

En plus d'être linéaire, une autre différence importante qui n'a pas été assez souligné ici est que dans le modèle N-tier, N est pas nécessairement 3 niveaux! Il est le plus souvent mis en œuvre trois niveaux (présentation, application, données) avec la couche intermédiaire ayant deux sous-niveaux (logique métier et l'accès aux données). En outre, le modèle MVC peut contenir des données et la logique métier pour la manipulation de données, alors que celles-ci seraient en gradins séparés dans le n-tier.

Une architecture N-Tier est mieux définie en utilisant 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. Beaucoup d'entreprises ont pris les mesures pour créer une architecture N Tier'd non seulement le déploiement et l'évolutivité, mais pour la réutilisation de code.

Par exemple, vos objets d'une entité commerciale peut avoir besoin d'être consommée par une application de bureau, un service Web exposé pour un client, une application Web ou une application mobile. Tout simplement en utilisant une approche MVC ne vous aidera pas réutiliser quoi que ce soit.

Conclusion: N niveaux est une architecture MVC un modèle de conception. Ils sont les mêmes appliqués dans deux metaphore domaines différents.

Jerry: Voici un exemple simple de la façon dont les deux sont liés:


Niveau 1 - Consiste des modèles qui communiquent avec niveau 2 par une sorte de service de réseau ou similaires, les contrôleurs pour gérer la validation des entrées, des calculs et d'autres choses pertinentes pour les points de vue. Et il exprime les vues eux-mêmes, ofcourse -. Qui peut ê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 d'une autre façon de recieving messages de niveau 1. Ne sait pas / ne devrait pas à propos de Tier 1, ne peut donc répondre à des appels de plus haut - jamais demander les choses par lui-même. contient également toute la logique métier.


Niveau 3 -. Il contient le modèle de domaine, la représentation d'objet de la base de données et la logique pour communiquer et mettre à jour la base de données entrées-

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 est triangulaire [modèle-vue-contrôleur]:. La vue envoie des mises à jour au contrôleur, le contrôleur met à jour le modèle, et la vue est mis à jour directement à partir du modèle

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