Frage

In letzter Zeit, ich habe zu erforschen, was ist der beste Weg, Präsentationsschicht von ASP.NET MVC-Anwendung zu organisieren, wenn Modell zugrunde liegenden Komplex ist. Was bis jetzt kam ist MVVM Architektur mit ihren Ansichtsmodell Objekte. Aber ich bin mir nicht sicher, was die besten Praktiken sind, wenn diese Art von Architektur in Fall ist.

  • Ist Ansichtsmodell Objekte können Modellobjekte enthalten?
  • Wenn MVVM verwendet wird, ist es ratsam, dass Modellobjekte auf Ansichten verwendet werden?
  • Wo Validierung durchgeführt werden soll, auf Ansichtsmodell oder Modellklassen?
  • Sollte Business-Schicht (Service-Layer) weiß über Ansichtsmodell, und die für die Zuordnung zwischen Ansichtsmodell und Modell verantwortlich ist?
War es hilfreich?

Lösung

  • Die meisten der Zeit, sind Objekte nur Container Modelview Modellobjekte zu halten, wenn wir mehrere Arten von ihnen senden müssen, oder wenn wir brauchen paar mehr Eigenschaften zu übergeben, die nur in Ansichten benötigt werden.
  • Wenn die Anzeige für den Job ist es, die Details eines Modells angezeigt werden und es gibt nichts anderes anzeigen passieren, warum nicht?
  • Kommt drauf an. Sie können Ihre Modelview und Modellklassen nur tragen Daten zwischen den Schichten verwendet werden. Und kümmern sich um die Validierung über cutom Modell Bindemittel oder mit einer Service-Schicht.
  • Es gibt keinen Grund, warum sollten sie nicht über ModelViews wissen. Aber in der Regel nur Sie das gewünschte Modell bekommen (n) aus der Dienstschicht von der Steuerung, und dann übergeben Sie es / sie direkt oder in einem Modelview auf die Ansicht.

BTW, würde ich nicht ModelViews als Architektur betrachten. Es ist mehr wie „man verwenden, wenn man einen braucht“. Immerhin gibt es keinen Punkt in dies zu tun Daten Ansicht weitergeben müssen:

class SomeModelView {
    public MyModel model { get; set; }
}

Sie einfach die MyModel passieren, wenn das reicht für die Aussicht, seine Arbeit zu tun.

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