2010-06-24 16 views
7

Scheint so, als gäbe es eine Tonne möglicher MVC-Konfigurationen/-Architekturen (MVC, MVVM, MVP, HMVC, PAC, Dokumentenansicht ...). Gibt es derzeit eine "beste" MVC-Architektur auf dem neuesten Stand der Technik? Was ist das neueste Denken? Oder ist es alles ein Free-for-All und/oder einfach an die Plattform gebunden, auf der man entwickelt (z. B. MVVM für WPF)?State of the Art in der MVC-Architektur?

(genauer gesagt bin ich interessiert in MVC wie in Desktop/Rich-Client-Anwendungen angewendet.)

+0

+1 gute Frage. – adatapost

Antwort

6

Nr Sie werden keine Vereinbarung bekommen, was ist die „derzeit akzeptierte“ beste Architektur.

Es ist sicherlich nicht MVC oder MVP. Diese Architekturen entstanden in den späten 70er und frühen 90er Jahren. MVP ist eine Verbesserung gegenüber MVC, aber in den zwanzig Jahren seit der Erfindung von MVP wurde deutlich, dass es an vielen, vielen Fehlern leidet Deshalb gibt es so viele neue konkurrierende Architekturen

Die Konzepte von "Modell" an d "view" sind akzeptiert und scheinen allen gängigen Architekturmodellen gemein zu sein. Die wirkliche Frage ist, wie man sie am besten verbindet. Du brauchst neben dem Modell und der Ansicht noch etwas anderes, aber was?

Die meisten der neueren Architekturen neigen dazu, dies zu tun, indem sie die Ansicht direkt mit dem Modell und dem "etwas anderen" verlinken oder binden, indem sie Datenbindung, Ausdrücke oder ähnliche Mechanismen verwenden. Auf diese Weise braucht alles in dem Modell, das direkt an die Sicht gebunden werden kann, das "etwas andere" überhaupt nicht einzubeziehen.

Mein persönlicher Favorit ist MVVM. Ich liebe die Tatsache, dass ein "View-Modell" konzeptionell nur ein "Modell" mit allen Aspekten eines anderen Modells ist, außer dass es (normalerweise) niemals auf die Festplatte geschrieben wird. In der Tat, wenn es nicht verwirrend wäre, könnte "MVVM" in "MV" umbenannt werden, da es so gut wie überflüssig ist, etwas anderes als Ansichten und Modelle zu benötigen. MVVM kann nicht nur mit WPF, sondern mit jedem Präsentationsframework mit erweiterten Datenbindungsfunktionen verwendet werden. Leider schließt dies GWT und Kakao aus. Ich mag auch MVVM, weil es dazu neigt, überflüssigen oder sich wiederholenden Code vollständig zu eliminieren.

MVVM ist nicht der einzige fortgeschrittene Spieler in der Stadt. Aspektorientierte Ansätze und Befehlsstrukturen, die auf traditionellen Modellen und Ansichten basieren, haben ebenfalls ähnliche Ziele.

Die Quintessenz ist, das ist immer noch ein aktiv erforschter Bereich und es wurde zu dieser Zeit kein Konsens erreicht. MVVM ist die beliebteste der neuen Architekturen, aber nicht die einzige. Die Jury ist noch nicht da.

Hinweis: Um eine Vorstellung davon zu bekommen, wie die neueren Architekturen sind Verbesserungen gegenüber MVC und MVP Besuche this comparison of Cocoa and WPF in der Rubrik „Repetitive Code“ ab und ging bis zum Ende des „Befehl Architecture“ Abschnitts.

+0

Gibt es einen Link zu einer Website, die MVVM detailliert beschreibt? –

+0

Es gibt mehrere solcher Seiten. Der Wikipedia-Artikel über MVVM hat 12 externe Links, von denen einige das zu sein scheinen, wonach Sie suchen. http://en.wikipedia.org/wiki/Model_View_ViewModel Warnung: Einige dieser Links beschreiben das Erstellen einer Proxy-Eigenschaft in Ihrem ViewModel für jede Ihrer Modelleigenschaften, stellen jedoch nicht klar, dass dies * nur * notwendig oder wünschenswert ist, wenn Ihrem Modell fehlt die Benachrichtigung über die Änderung des Eigentums. Ich verwende eine Datenschicht, die die Benachrichtigung über die Änderung von Eigenschaften korrekt implementiert. Daher hatte ich nie einen Grund, solche Proxyeigenschaften zu erstellen, wenn ich MVVM verwendet habe. –

3

Der neueste architektonische Forschung in diesen Tagen für Thick Clients getan wird von Google gemacht wird. mit der MVP-Architektur.

Sehen Sie sich die GWT Artikel auf MVP
http://code.google.com/webtoolkit/articles/mvp-architecture.html
http://code.google.com/webtoolkit/articles/mvp-architecture-2.html

in diesem Schauen Sie auch http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/8b0ae5eaf84d8bc2?hide_quotes=no

Auch dieses YouTube Video http://www.youtube.com/watch?v=PDuhR18-EdM

Was Besuche als Ihre Frage zu beantworten, mit Ausnahme von zu sagen, dass MVC ist irgendwie veraltet, ich denke, es ist sehr subjektiv auf dem Weg zu gehen. Es ist nicht plattformspezifisch, mit der Ausnahme, dass der Rahmen Sie die Architektur diktieren holen könnte :(

+0

GWT im Zusammenhang mit Desktop/Rich-Client-Anwendungen? .. auch ich falsch verstanden, oder implizieren Sie wirklich, dass MVP-Architektur Google ist? –

+0

@Pavel GWT ist sehr ähnlich wie Java Swing. Ich behaupte nicht, dass sie MVP erfunden haben (nicht sicher, wer es getan hat), nur dass sie es fördern und viel veröffentlicht haben. Ich habe meinen Beitrag so aktualisiert, dass er so interpretiert werden könnte. –

+0

** MVP gibt es seit den frühen 90er Jahren ** und ist eine alte Nachricht. Wenn sich die Frage stellt, was der Stand der Technik ist, ist MVP nicht einmal im Rennen. MVP hat immer noch die meisten Probleme, die MVC hatte. Sie können viel besser als das tun. –

Verwandte Themen