MVVM Anwendungen mit Delphi und nicht gegen Delphi

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.

2 Comments

  • Michael

    24. Februar 2017 at 13:18 Antworten

    Zuerst 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:15 Antworten

      Freut 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

Post a Comment