16 Stimmen

Was gehört in das Modell in MVVM?

Die Dinge, die eigentlich in das Model gehören, sind auch im View-Model erlaubt, d.h. öffentliche Eigenschaften, IDataErrorInfo und INotifyPropertyChanged, aber was soll tatsächlich in das Model?

33voto

decyclone Punkte 29526

Modell

Geschäftsdaten + Geschäftslogik + Geschäftsregeln

Ansicht

Applikations-UI

ViewModel

Wrapper über Modell, der von der Ansicht mithilfe von minimalem Aufwand/Code leicht lesbar/bindbar ist.

  1. IDataErrorInfo - Sollte im ViewModel verwendet werden
  2. INotifyPropertyChanged - Sollte im ViewModel verwendet werden. Kann auch im Modell verwendet werden, wenn nötig (aber nicht empfohlen)
  3. Öffentliche Eigenschaften - Ja, ein Modell sollte sie haben.

3voto

dave Punkte 1497

Gehen Sie davon aus, dass Sie einen Stapelverarbeitungsprozess für einen Datenimport schreiben werden. Der Stapelverarbeitungsprozess wird nur auf das Modell zugreifen, daher gehört alles, was Sie zur Verarbeitung der Geschäftsregeln benötigen, getrennt von der Benutzeroberfläche, ins Modell. Das ViewModel kann einige Geschäftsregeln haben, aber nur in Bezug auf die Benutzeroberfläche.

In der von mir erstellten Anwendung befinden sich die Ansichten und ViewModels in einer Assembly und das Modell in einer anderen. Das Modell hat keine Verweise auf die Assembly der Ansicht und nur die Modell-Assembly hat Verweise auf den zugrunde liegenden Datenspeicher (eine Kombination aus Linq- und Webdienstanforderungen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X