Im folgenden Video meines Youtube-Kanals eine Einführung zum Thema MVVM Anwendungen mit Delphi. Wichtige Motivation ist für mich, dass ich soviel Delphi wie möglich verwende, also eben nicht anfange, alles von Hand im Source-Editor hinzuschreiben.
Hinweis: Das Video versteht sich als erste Einführung in das Thema MVVM mit Delphi. Selbstverständlich gibt es noch eine ganze Reihe von Dingen, die man optimieren und ausbauen kann. Weitere Schritte werde ich hier in noch folgenden Beiträgen skizzieren.
Das Video ist in Deutsch.
Michael
24. Februar 2017 at 13:18Zuerst einmal vielen Dank für den interessanten Vortrag.
Wie würden in einem MVVM schreibende Prozesse realisiert werden, so dass Eingaben von mehreren Edits in die DB geschrieben werden? Der Verdrahtungsauswand im View soll ja minimal sein.
Wie würde dann weiterhin Rückmeldungen in die View kommen, die bei Problemen in der Model-Ebene auftauchen?
Olaf Monien
24. Februar 2017 at 17:15Freut mich, wenn es gefallen hat 🙂
Im ersten Ansatz, so wie im Video gezeigt, nutze ich ja für die Verbindung von Edits mit der Datenquelle eine TDatasource im ViewModel, die dann von beliebig vielen TDBEdits genutzt werden kann, um Daten anzuzeigen und zu editieren. Die TDatasource ist dabei im Sinne des MVVM eine Sammlung von Eigenschaften (nämlich aller Felder einer bestimmten Datenmenge in der DB) in dem ViewModel. Dem ViewModel fällt nun prinzipiell die Aufgabe zu, (in TDatasource Events) Prüfungen er Eingaben durchzuführen. In letzter Instanz führt aber dann im Model die Query bzw. die Datenbank zumindest die Prüfungen für die Basis Contraints durch.
Egal wo nun Fehler auftreten, gibt es verschiedene Mechanismen damit umzugehen:
– Exception generieren
– Fehlersituation als Eigenschaft im VM abbilden, um dem View die Möglichkeit zu geben, die Situation dem Benutzer zu visualisieren
– Den View (z.B. über eine TMessage Konstruktion) im Sinne eines Observer Patterns über die Fehlersituation benachrichtigen
Martin
29. Mai 2017 at 18:46Hi Olaf,
I don’t understand german but I tried to follow your video using a translated Youtube transcript.
Just wondering whether you will make the source code used in the video available for download?
Thomas Feichtner
19. September 2017 at 22:00Hallo Olaf,
ich kann mich Michael nur anschließen. Wirklich ein interessanter Vortrag.
Jedoch wer ruft z.B. eine andere Form auf (Artikel -> Stückliste)?
Macht das deiner Meinung nach der View oder das Viewmodel?
Und wie wäre die das wenn man eine 3-Tier- Application macht?
Was wäre hier der ApplicationServer (Model) und ApplicationClient (ViewModel und View)?