2010-01-19 5 views
7

Als ich zum ersten Mal von ASP.NET MVC hörte, dachte ich, dass Anwendungen mit drei Teilen bedeuten: Modell, Ansicht und Controller.Das Modell-Repository-Service-Validator-View-ViewModel-Controller Entwurfsmuster (?)

Dann lese ich NerdDinner und lernte die Möglichkeiten von Repositories und View-Modelle. Als nächstes las ich this tutorial und wurde bald auf den Tugenden einer Service-Schicht verkauft. Schließlich lese ich die Fluent Validation documentation, und ich werde verdammt sein, wenn ich nicht am Ende eine Reihe von Validatoren schreiben würde.

Heute Abend trat ich einen Schritt zurück und dachte darüber nach, was aus meinem Projekt geworden war. Es scheint das Opfer des Design-Pattern-Äquivalents von "Feature Creep" geworden zu sein. Irgendwie war ich vom Model-View-Controller zum Model-Repository-Service-Validator-View-ViewModel-Controller. Sie wollen locker gekoppelt und trocken? Wir haben Ihre lose gekoppelte und DRY genau hier! Aber ich frage mich, ob dies zu viel von einer guten Sache sein könnte.

Bin ich richtig besorgt? Oder ist das eigentlich nicht so verrückt wie es klingt? Auf der einen Seite scheint es verrückt, so viele Schichten zu haben. Auf der anderen Seite hat jede Schicht einen klar definierten Zweck, der für mich Sinn macht. Sind Ihre MVC-Anwendungen auch zu MRSVVVMC-Apps geworden? Wenn nicht, wie sehen sie aus? Wo ist das richtige Gleichgewicht?

Antwort

4

Wenn Sie ein Formular mit drei Attributen haben, ist das Overkill.

Aber wenn Sie eine "echte" Anwendung haben, und die Verantwortlichkeiten jeder Schicht sind gut definiert, würde ich es ziemlich vernünftig halten.

1

Es klingt für mich wie Sie ein Muster gefunden und ging auf der Suche nach einem Problem. Sie sollten ein Problem finden und das entsprechende Werkzeug aus Ihrer Toolbox verwenden ... nicht alle Tools. Es sei denn, dies ist natürlich eine akademische Übung.