2009-06-03 13 views
2

Je mehr ich mit ASP.NET MVC arbeite und lese, scheint es, als ob das "M" oder Modell ein Thema ist, das eine erhebliche Verwirrung zu verursachen scheint.Warum Model View Controller und nicht Adapter View Controller? Das "M" oder Modell fehlt Klarheit

Sollte das MVC-Framework wirklich in Adapter View Controller umbenannt werden? Wo ist der Adapter für die Bereitstellung von Datenmodellen an die Ansicht verantwortlich?

+0

Nicht vergessen Spiegel-Signal-Manöver. Ich denke, es gibt sowieso eine Menge Verwirrung über Design-Patterns, niemals Gedanken, die absolute Konvention über Semantik und Benennung zu halten. –

Antwort

5

Ich glaube nicht, dass es wirklich wichtig ist, was zum Teufel der Name ist. In den meisten gut entwickelten Anwendungen ist die Daten/Modell/was auch immer Schicht eine eigene Standalone-Assembly mit ViewModels (was Sie als Adapter entsprechend kennzeichnen), die in der Anwendung zur Unterstützung der Objekte in dieser Baugruppe eingebaut ist. aber es muss nicht für einfache Anwendungen sein, Sie können dies alles innerhalb des Modells in einem MVC-Projekt leben lassen. Der Begriff "Modell" ist meiner Meinung nach ein generischer Begriff, der dieser Bedeutung Flexibilität verleiht.

Es wird wahrscheinlich MVC genannt, weil das ein Schlagwort ist und Schlagworte für Marketing und Management gut sind.

+3

Buzzwords, die falsch verwendet werden, verursachen Massenverwechslungen ... – RSolberg

3

Der Begriff "Modell" führt bei Domänenmodellen und MVC zu großer Verwirrung. Die Realität ist, dass, wenn Sie sich überhaupt auf die Entwicklung von Domänenmodellen konzentrieren, das ist, worauf sich das Modell in MVC bezieht. Konzepte wie ViewModels und Presenter sind, wie Sie sagen, Adapter. Ich verweise gerne auf diese Objekte mit Begriffen wie "ModelAdapter", "ViewAdapter" oder "EditAdapter".

Domänenmodelle sind verhaltensorientiert und eignen sich nicht für UI-Aktivitäten wie das Binden. Genau dafür stehen ModelAdapters (ViewModels).

0

Das "Modell" in MVC stellt wirklich das "Modell" dar, das als Datencontainer für das Übertragen von Daten zwischen der zugrunde liegenden Struktur und der Ansicht verantwortlich ist. Die Bereitstellung des Modells für die Ansicht liegt in der Verantwortung des Controllers. Eigentlich ist dies die Hauptverantwortung eines Controllers.

Dies ist kein neues Konzept, das von ASP.NET MVC Framework eingeführt wird. Das Framework ist nur eine Implementierung des bekannten MVC-Patterns und sehr genau benannt, da es dem exakten Model-View-Controller-Muster folgt.

Es gibt auch MVP, MVVM und DMVVM Muster, die Sie als andere Alternativen für das gleiche Problem betrachten können. Keiner von ihnen ignoriert das einfache Modell, da ein sehr einfaches Datenhaltemodell das ist, was befolgt werden sollte.

+2

Das Modell ist in den meisten Anwendungen mehr als ein Datencontainer. Es ist die Heimat Ihrer Geschäftsregeln und Ihres Verhaltens. Aus diesem Grund ist es nicht für die Bindung an die Benutzeroberfläche geeignet. Der Controller sollte nicht das Modell, sondern ein angepasstes "ViewModel" oder Presenter liefern. – jlembke

+1

:) Meiner Meinung nach .. – jlembke

+0

DMVMV nicht DMMVM – Firoso

Verwandte Themen