Frage

Ich habe mich gefragt, was genau ist der Unterschied zwischen MVC (die ein architektonisches Muster) und einer n-Tier-Architektur für eine Anwendung. Ich danach gesucht, konnte aber nicht eine einfache Erklärung finden. sein Darf ich ein wenig naiv auf MVC Konzepten bin, also wenn jemand den Unterschied erklären kann, dann wäre es toll.

cheers

War es hilfreich?

Lösung

N-Tier-Architektur hat in der Regel jede Schicht durch das Netz getrennt. I.E. die Präsentationsschicht ist auf einigem Web-Server, dann, dass die Gespräche App-Server über das Netzwerk für Business-Logik Backend, dann, dass die Gespräche zu einem Datenbankserver, wieder über das Netzwerk, und vielleicht auch der App-Server zu einige Remote-Dienste rufen (sagen Authorize.net für die Zahlungsabwicklung).

MVC ist ein Programmierentwurfsmuster, wo verschiedene Teile des Codes für die Darstellung des Model, View verantwortlich sind, und Controller in einigen Anwendungen. Diese beiden Dinge zusammenhängen, weil zum Beispiel die Modellschicht eine interne Implementierung haben können, die eine Datenbank ruft zum Speichern und Abrufen von Daten. Der Controller kann auf dem Webserver befinden, und aus der Ferne appservers rufen Daten abzurufen. MVC abstrahiert die Details, wie die Architektur einer Anwendung implementiert, entfernt.

N-Tier bezieht sich nur auf die physische Struktur einer Implementierung. Diese beiden sind manchmal verwirrt, weil ein MVC-Design oft eine N-Tier-Architektur implementiert ist.

Andere Tipps

Wenn ein 3-Tier-Design wie folgt ist:

Client <-> Middle <-> Data

die MVC-Rüttler seien:

     Middle
     ^    |
     |    v
Client <- Data

Was bedeutet, dass:

  • in der 3-Tier-Äquivalent, die Kommunikation zwischen den Schichten ist bi-direktionale und immer verläuft durch die mittlere Ebene
  • in dem MVC-äquivalent die Kommunikation in ist unidirektionale ; könnten wir sagen, dass jede „Schicht“ von der einen auf der linken Seite und wiederum aktualisiert wird, aktualisiert die man auf der rechten Seite -Wo „links“ und „rechts“ sind lediglich illustrativ

P. S. Client wäre die Ansicht und Middle die Controller

Dies ist, was sagen n-Tier-Architektur

  

Auf den ersten Blick sind die drei Ebenen kann   ähnlich scheinen die MVC (Model View   Controller) Konzept; jedoch,   sie sind topologisch verschieden. EIN   Grundregel in einer dreistufigen   Architektur ist das Client-Tier nie   kommuniziert direkt mit dem Datum   Tier; in einem Drei-Stufen-Modell all   Kommunikation muß durch den Pass   Middleware-Ebene. konzeptionell die   dreistufige Architektur ist linear.   Allerdings ist die MVC-Architektur   Dreieck: sendet der Updates anzeigen zu   der Controller, der Controller-Updates   das Modell und die Ansicht wird aktualisiert   direkt aus dem Modell.

Die einzige Ähnlichkeit ist, dass die beiden Muster drei Kisten in ihre Diagramme haben. Im Grunde sind sie in ihren Verwendungen völlig anders. Wenn die Tat ist es nicht in der Regel die Wahl zwischen welchen Mustern zu verwenden, aber beiden Muster zusammen harmoneously verwenden werden können. Hier ist ein guter Vergleich der beiden: http: // allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Eine grundlegende Regel in dreischichtigen Architektur ist das Client-Tier nie direkt mit der Datenebene in Verbindung steht; in einem Drei-Schichten-Modell müssen alle Kommunikation durch die Middleware-Ebene übergeben.

Es ist Liner Architektur. Diese befasst sich mit der Frage, wie Informationen zwischen einem Benutzer und einer Datenbank zu übergeben. Wo, wie MVC eine dreieckige Architektur: die Ansicht sendet Aktualisierungen an den Controller aktualisiert die Controller-Modell und die Ansicht wird direkt aus dem Modell aktualisiert. Diese befasst sich mit Fragen, wie eine Benutzeroberfläche verwaltet die Komponenten auf dem Bildschirm.

@Cherry Middleware funktioniert eher wie ein Request-Handler oder Redirector in MVC-Muster.

Ich möchte ein wenig über MVC erklären, Nach mir Model View Controller funktioniert wie folgt.

  1. Client leitet die Sitzung, indem für jeden Dienst anfordert.
  2. Diese Anforderung wird empfangen und bearbeitet durch die Steuerung (Request-Handler, Redirector usw.)
  3. Controller-Prozess eine grundlegende Informationen über den Antrag und leiten sie an die zuständigen Modell, das die Datenanforderung füllen können.
  4. Modell die Anfrage füllen nach den Parametern von Controller übergeben und die Ergebnisse an-Controller zurückschicken. (Anmerkung:. Hier Ich mag diese Daten löschen, wird nicht direkt an den Client in echte MVC-Architektur zurück, sondern es füllt und zurück an den Controller)
  5. Controller als die Daten senden Aufruf (Client).
  6. Client hat den angeforderten Dienst vor ihm.

Das ist alles über MVC, die ich kenne.

Geben Sie sich eine Pause. Und beschränken sich nicht auf bestimmte Muster, wenn reale Probleme zu lösen. Denken Sie daran, einige allgemeine Grundsätze, von denen separation of concerns .

Neben linear, ein weiterer wichtiger Unterschied, dass nicht genug hier betont wurde, ist, dass in der N-Tier-Modell, N nicht unbedingt 3-Stufen ist! Es wird am häufigsten als drei Stufen (Präsentation, App, Daten) mit der mittleren Schicht zwei (Geschäftslogik und Datenzugriff) Unterklassen mit implementiert. Auch kann das Modell in MVC sowohl Daten enthalten und die Geschäftslogik für die Datenmanipulation, während dieser in getrennten Ebenen in n-Tiere sein würde.

Eine N-Tier-Architektur wird am besten definiert ein Verteilungsdiagramm verwendet wird.

Eine MVC-Architektur wird am besten definiert ein Sequenzdiagramm verwendet wird.

Die 2 sind nicht die gleichen und sind nicht verwandt und Sie können die beiden Architekturen zusammen kombinieren. Viele Unternehmen, die Schritte unternommen haben, N Tier'd Architektur nicht nur für die Bereitstellung und Skalierbarkeit, sondern auch für die Wiederverwendung von Code als auch zu schaffen.

Zum Beispiel Ihrer Geschäftsentitätskomponenten Objekte müssen möglicherweise für einen Client, ein Web-App oder eine mobile App ausgesetzt von einer Desktop-Anwendung, ein Webdienst verbraucht werden. einen MVC-Ansatz einfach verwendet, wird dir nicht helfen, überhaupt etwas zu wiederverwendet werden.

Fazit: N-Tier ist eine Architektur, MVC ein Design-Muster. Es sind die gleichen metaphore in zwei verschiedenen Bereichen angewendet.

Jerry: Hier ist ein einfaches Beispiel dafür, wie die beiden sind verwandt:


Tier 1 - besteht aus Models, die Eingabevalidierung, Berechnungen und andere Dinge mit Tier 2 durch irgendeine Art von Netzwerk-Service oder ähnliche, Steuerungen kommunizieren relevant für die Ansichten zu handhaben. Und es enthält die Ansichten selbst, natürlich -., Welche die GUI in einem Desktop-App sein kann, oder die Web-Schnittstelle in einem Web-App


Tier 2 - Enthält eine Art von Service oder andere Art und Weise von Nachrichten von Tier 1. recieving Does nicht / sollten wissen, nicht über Tier 1, so kann nur von oben, um Anrufe beantworten - nie fragen nach Dinge von selbst aus. Auch enthält alle Business-Logik.


Tier 3 -. Enthält das Domänenmodell, Objektdarstellung der Datenbank und alle Logik zu kommunizieren und Update-Datenbank-Einträge

In einem Drei-Stufen-Modell der gesamte Kommunikation muss die mittlere Ebene passieren. Konzeptionell die dreistufige Architektur ist linear. Allerdings ist die [Model-View-Controller] MVC-Architektur ist dreieckig. Die Ansicht sendet Aktualisierungen an den Controller, der Controller aktualisiert das Modell und die Ansicht direkt aus dem Modell aktualisiert wird

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top