MVC & 3-Tier



  • hallo Leute!

    irgendwie behaupten alle (in meiner Umgebung), dass MVC- und 3-Tier-Architekturen etwas vollkommen verschiedenes und auf keinen Fall miteinander vergleichbar sind.

    Bisher habe ich aber fast nur Gemeinsamkeiten feststellen können! Beide Verfahren teilen das Gesamtsystem in drei Bereiche auf. Meinesachtens sind dabei sogar die Teile

    • Model und Data-Tier
    • Controller und Buisness-Tier
    • View und Presentation-Tier

    sehr ähnlich.

    Meine Frage ist nun, was ist jetzt eigentlich der genaue Unterschied?

    Vielen Dank für Euere Hilfe!

    Ciao
    shoat



  • Im praktischen Auftreten würde ich mal sagen, daß beim 3-Tier die Data-Ebene praktisch immer an eine Datenbank gekoppelt ist, während beim MVC die Model-Ebene nicht zwangsläufig so stark daten- und tabellenbasiert ist...



  • Ich würde auch mal sagen, das MVC und 3-Tier das gleiche Ziel haben, aber ob es auch wirklich DAS gleiche ist? MVC würde ich rein auf den Programmcode beziehen. 3-Tier eher auf Hardware-Basis, also Client, Datenbank und meinetwegen noch Applikation-Server.

    MVC beziehen wir hier bei uns im Java-Project immer auf z.B. das Tablemodel und GUI, dann haben wir noch nen Businessprocess, der die Logic enthält.

    Wie gesagt, 2-Tier, 3-Tier u. 4-Tier kenne ich rein vom Systemaufbau in Hardware (Server, Webservice, Fat-Client, Host usw.).

    MVC beziehen wir hier immer rein auf Software.



  • Muß nicht zwangsläufig so sein, grundsätzlicher Unterschied ist vielleicht, daß man bei 3Tier von KOMPONENTEN spricht, also bereits von einer softwaretechnischen Organisationsform. Bei MVC ist dies nicht näher untergliedert, quasi eine Obermenge. Die Komponenten von 3Tier können demnach auf 3 Plattformen laufen, müssen aber nicht. Ist bei größeren Systemen aber oft so, daß der DB-Teil auf einem Drittrechner läuft. Aber es gibt keinen Zwang, daß dies so sein müßte.



  • hallo Leute!

    ich denke, ich bin gerade ein wenig verwirrt. 😮

    fangen wir mit dem an, was ich verstanden habe. das 3-Tier-Konzept gliedert en Software-System in Komponenten, dass sind drei unterschiedliche logische Schichten - klar! (2-/4-Tier analog). aber was genau ist jetzt der Unterschied zur Aufteilung in Model, View und Controller? Ich verstehe den - wahrscheinlich auch, weil ich kaum noch Praxiserfahrung habe - Unterschied eigentlich überhaupt nicht.

    Artchi hat eben gemeint, dass man MVC eher auf Software und 3-Tier eher auf Hardware anwendet. Wenn dem so ist, was ich nich beurteilen kann, dann würde ich gerne wissen, warum sich das eine besser die eine Sache und das andere bessere für die andere Sache eignet? es muss ja einen Grund haben!

    Ach ja, hättet ihr vielleicht noch einen Oberbegriff für die Begriffe MVC und 3-Tier für mich, nach dem ich (z. B.) googeln kann?

    Vielen Dank für Euere Hilfe!

    Ciao
    shoat



  • Also, ich will mal meinen Kenntnisstand hier näher bringen. MVC z.B. kenne ich als "Model View Concept"... d.h. das in einer Anwendung, die grafische Sicht (GUI) von der Datenschicht getrennt ist. Java macht das beste Beispiel dafür. Es gibt eine Klasse JTable (grafisch) und eine Klasse TableModel (Datenhaltung). Hier sehe ich keine Netzwerk-Kommunikation oder ähnliches.

    So, 3-Tier Technik kenne ich pers. nur im Bereich der Systeme (also rein physikalischen). Z.B. ist der 1st Tier der Client (HTML oder Fat), der zweite Tier der Webservice und der dritte Tier die Datenbank. Diese betrachte ich als einzelne Systeme (das diese auf der selben Maschine laufen können, kann ja möglich sein), aber ich trenne diese Komponennten rein physikalisch. Also ich hab da als dritten Tier die Datenbank die auf nem eigenen Rechner läuft, der Client auch (halt auf dem User-PC) und Webservice auf nem anderen Rechner.

    Jetzt meinte Markus, das er System-Komponenten meint... gut nennen wir sie System-Komponenten und sie sollten meinetwegen auch auf der selben Maschine laufen (wenns denn Sinn macht).

    Also, MVC und Tier-Technik sind für mich zwei paar Schuhe. Wobei BEIDE das gleiche Ziel verfolgen, die einzelnen Komponenten zu trennen.


Anmelden zum Antworten