Bei der N-Tier-Architektur ist normalerweise jede Schicht durch das Netzwerk getrennt. IE, die Präsentationsschicht befindet sich auf einigen Webservern, die dann mit Backend-App-Servern über das Netzwerk für Geschäftslogik kommunizieren, dann mit einem Datenbankserver, erneut über das Netzwerk, und möglicherweise ruft der App-Server auch einige Remotedienste auf ( sagen Sie Authorize.net für die Zahlungsabwicklung).
MVC ist ein Programmierentwurfsmuster, bei dem verschiedene Teile des Codes für die Darstellung des Modells, der Ansicht und des Controllers in einer bestimmten Anwendung verantwortlich sind. Diese beiden Dinge hängen zusammen, weil beispielsweise die Modellschicht eine interne Implementierung haben kann, die eine Datenbank zum Speichern und Abrufen von Daten aufruft. Der Controller befindet sich möglicherweise auf dem Webserver und ruft App-Server remote auf, um Daten abzurufen. MVC abstrahiert die Details der Implementierung der Architektur einer App.
N-Tier bezieht sich nur auf die physische Struktur einer Implementierung. Diese beiden werden manchmal verwechselt, weil ein MVC-Entwurf häufig unter Verwendung einer N-Tier-Architektur implementiert wird.
Wenn ein dreistufiges Design so wäre:
Das MVC-Muster wäre:
Bedeutet, dass:
PS- Client wäre die Ansicht und Mitte des Controllers
quelle
Dies ist, was über n-Tier-Architektur sagen
quelle
Die einzige Ähnlichkeit besteht darin, dass die beiden Muster drei Kästchen in ihren Diagrammen haben. Grundsätzlich unterscheiden sie sich in ihrer Verwendung völlig. Tatsächlich ist es normalerweise keine Wahl, welches Muster verwendet werden soll, aber beide Muster können harmonisch zusammen verwendet werden. Hier ist ein guter Vergleich der beiden: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
quelle
Eine grundlegende Regel in der dreistufigen Architektur ist, dass die Client-Schicht niemals direkt mit der Datenschicht kommuniziert. In einem dreistufigen Modell muss die gesamte Kommunikation über die Middleware-Schicht erfolgen.
Es ist Liner-Architektur. Dies befasst sich mit der Frage, wie Informationen zwischen einem Benutzer und einer Datenbank übertragen werden. Wenn MVC eine dreieckige Architektur ist: Die Ansicht sendet Aktualisierungen an den Controller, der Controller aktualisiert das Modell und die Ansicht wird direkt vom Modell aktualisiert. Hier werden Fragen behandelt, wie eine Benutzeroberfläche die Komponenten auf dem Bildschirm verwaltet.
quelle
@Cherry Middleware funktioniert eher wie ein Anforderungshandler oder Redirector in MVC Pattern.
Ich möchte etwas über MVC erklären. Meiner Meinung nach funktioniert Model View Controller so.
Das ist alles über MVC, das ich kenne.
quelle
Gönnen Sie sich eine Pause. Und beschränken Sie sich bei der Lösung realer Probleme nicht auf bestimmte Muster. Denken Sie nur an einige allgemeine Prinzipien, von denen eines die Trennung von Bedenken ist .
quelle
Ein weiterer wichtiger Unterschied, der hier nicht genug betont wurde, ist, dass N im N-Tier-Modell nicht unbedingt 3-Stufen ist! Es wird am häufigsten als drei Ebenen (Präsentation, App, Daten) implementiert, wobei die mittlere Ebene zwei Unterebenen (Geschäftslogik und Datenzugriff) aufweist. Außerdem kann das Modell in MVC sowohl Daten als auch Geschäftslogik für die Datenmanipulation enthalten, während diese in n-Ebenen in separaten Ebenen vorliegen würden.
quelle
Eine N-Tier-Architektur lässt sich am besten anhand eines Bereitstellungsdiagramms definieren.
Eine MVC-Architektur lässt sich am besten anhand eines Sequenzdiagramms definieren.
Die 2 sind nicht gleich und nicht verwandt, und Sie können die beiden Architekturen miteinander kombinieren. Viele Unternehmen haben die Schritte unternommen, um eine N-Tier-Architektur zu erstellen, die nicht nur die Bereitstellung und Skalierbarkeit, sondern auch die Wiederverwendung von Code ermöglicht.
Beispielsweise müssen Ihre Business Entity-Objekte möglicherweise von einer Desktop-App, einem für einen Client bereitgestellten Webdienst, einer Web-App oder einer mobilen App verwendet werden. Die einfache Verwendung eines MVC-Ansatzes hilft Ihnen nicht, irgendetwas wiederzuverwenden.
quelle
Fazit: N-Tier ist eine Architektur, MVC ein Entwurfsmuster. Sie sind dieselbe Metapher, die in zwei verschiedenen Bereichen angewendet wird.
quelle
Jerry: Hier ist ein einfaches Beispiel dafür, wie die beiden zusammenhängen:
Tier 1 - Besteht aus Modellen, die über einen Netzwerkdienst oder ähnliche Controller mit Tier 2 kommunizieren, um die Eingabevalidierung, Berechnungen und andere für die Ansichten relevante Dinge zu erledigen. Und es enthält natürlich die Ansichten selbst - das kann die GUI in einer Desktop-App oder die Weboberfläche in einer Web-App sein.
Tier 2 - Enthält eine Art Dienst oder eine andere Möglichkeit, Nachrichten von Tier 1 zu empfangen. Weiß / weiß nichts über Tier 1, kann also nur auf Anrufe von oben antworten - fragen Sie niemals selbst nach Dingen. Enthält auch alle Geschäftslogik.
Tier 3 - Enthält das Domänenmodell, die Objektdarstellung der Datenbank und die gesamte Logik zur Kommunikation und Aktualisierung von Datenbankeinträgen.
quelle
In einem dreistufigen Modell muss die gesamte Kommunikation über die mittlere Ebene erfolgen. Konzeptionell ist die dreistufige Architektur linear. Die MVC-Architektur [model-view-controller] ist jedoch dreieckig: Die Ansicht sendet Aktualisierungen an die Steuerung, die Steuerung aktualisiert das Modell und die Ansicht wird direkt vom Modell aktualisiert.
quelle