AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi MVVM - MVC wer macht was, was ist möglich....
Thema durchsuchen
Ansicht
Themen-Optionen

MVVM - MVC wer macht was, was ist möglich....

Ein Thema von noisy_master · begonnen am 10. Feb 2022 · letzter Beitrag vom 11. Feb 2022
Antwort Antwort
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
260 Beiträge
 
Delphi XE5 Professional
 
#1

MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 12:42
Hallo liebe Gemeinde,

im Rahmen der Umstrukturierung meiner alten SW Projekt bin ich z.Zt. dabei mich mit den MVVM /MVC Konzepten auseinanderzusetzen, aber so ein paar Fragen habe ich immer noch:

einfaches Beispiel: View mit 3 Buttons( mehr, weniger, löschen) und einer Liste. "mehr" geht nur wenn Einträge in der Liste vorhanden/selektiert, "löschen" genau so und "weniger" geht nur wenn Einträge in Liste vorhanden/selektiert und Anzahl größer 1....Als normale RAD Anwendung einfach, aber wer ist denn nun bei MVVM bzw MVC dafür zuständig die Buttons entsprechend zu de-/aktivieren? View oder ViewModel bzw. Controller oder ...?

Weitere Frage: Für die Anbindung einer View über REST bei MVC gibt es ja nun einige Beispiele z.B. mormot oder DMVC. Wie sieht denn das bei MVVM aus? Kann man dort auch eine View über Rest anbinden? Wenn ja: wie?

Und eine weitere Frage(wenn auch etwas ausserhalb der Delphi Welt): Kennt jemand einen Webshop(natürlich wie immer am liebsten kostenfrei), der sich über Rest an einen Server hängen kann um seine Bestellungen direkt im Server abzusetzen(und der sollte sich am liebsten mit Delphi erstellen lassen...aber das müsste ja wohl z.B. mit DMVC gehen)

Danke schon mal wieder im Voraus für eure hilfreichen Antworten!
Dirk
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.445 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 13:08
Bitte immer nur ein Thema in einem Beitrag. Danke.
Zu MVVM:
Zuständig die Buttons entsprechend zu de-/aktivieren ist das Viewmodel. Ein Controller gehört da nicht dazu.
Wir machen MVVM mit einem selbstgebauten Framwork. Wegen der schlechten Umsetzung von Generics/RTTI in Delphi kann ich das nicht empfehlen.
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
260 Beiträge
 
Delphi XE5 Professional
 
#3

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 15:18
Bitte immer nur ein Thema in einem Beitrag. Danke.
Okay, ich werde versuchen es beim nächsten Mal zu berücksichtigen

Zu MVVM:
Zuständig die Buttons entsprechend zu de-/aktivieren ist das Viewmodel. Ein Controller gehört da nicht dazu.
Wir machen MVVM mit einem selbstgebauten Framwork. Wegen der schlechten Umsetzung von Generics/RTTI in Delphi kann ich das nicht empfehlen.
Okay, beim MVC gehört aber ein Controller dazu. Wer macht denn diese Logik bei MVC? Der Controller? Aber der soll doch eigentlich auch nichts vom View "wissen", oder habe ich da was falsch verstanden
Und was kannst du mir nun nicht empfehlen? Das Framework selberzumachen, oder MVVM im allgemeinen? Wenn du MVVM nicht empfehlen kannst: warum macht ihr es dann?
(soll kein "blaming" sein, sondern mich interessiert der technische Hintergrund)
Dirk

Geändert von noisy_master (10. Feb 2022 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TheDelphiCoder
TheDelphiCoder

Registriert seit: 15. Sep 2021
5 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 16:18
Es gibt auch noch MVP[wikipedia].
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.445 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 18:43
Hallo,
ich kann nicht empfehlen das Framework selber zu machen. Es hat hunderte Stunden gekostet. Wir nehmen es nun halt weil die Zeit eh schon rum ist und wir einigermassen damit klar kommen.
MVVM überhapt zu nehmen weiss ich nicht ob ich das empfehlen soll.
Auf jeden Fall empfehle ich die UI vom Code zu trennen soweit möglich. Da bist du ja dran.
Das ist wichtig um für diesem Code unit tests machen (zu können).
Auch nicht empfehle ich falls Du darüber stolperts etwas was MVVM nennt und auf einem Datenmodul basiert.

Falls Stevie was anbietet - nimm das.
Ausserdem lege ich Dir die Bücher ans Herz:
"Dependency Injection in Delphi"
"Coding in Delphi"
Beide hier

Geändert von freimatz (10. Feb 2022 um 18:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 10. Feb 2022, 19:07
Falls Stevie was anbietet - nimm das.
Danke für die Vorschusslorbeeren, aber an dem Thema hab ich mich schon versucht und es als gescheitert betrachtet - zumindest was eine allgemeingültige Implementierung angeht. Das wird in Delphi einfach nicht rund.
Gerade, wenn es um die verschiedenen UI Controls geht (vor allem Drittanbieter), unterstützen die halt alle nicht einen irgendwie gearteten Mechanismus, um Änderungen an die Binding Engine zu übermitteln. Da muss man dann entweder ableiten oder Interposer Klassen bauen und darauf achten, nicht seine uses Reihenfolge zu verwurschteln.

Wir benutzen eine Mischung aus Binding (die aus DSharp) für simple UI (paar Edits, Checkboxes, etc), VirtualStringTree mit TreeviewPresenter (auch DSharp), DevExpress Grid entweder mit klassischem DataSource/DataSet oder per GridviewPresenter (auch DSharp private Fork Entwicklung) je nachdem, ob die Daten als Objektlisten oder Dataset vorliegen.

Mir fehlt die Zeit, mich erneut in diese Thematik einzuarbeiten, da ich mit Spring4D und einigen anderen Projekten beschäftigt bin, aber inzwischen tendiere ich fast dazu, den DB Aware Component Ansatz zu präferieren (zumindest unter VCL). Durch die Abstraktionsschicht, die ein Dataset bietet, müssen dahinter nicht unbedingt Daten aus einer DB oder so liegen, siehe TObjectDataSet aus Spring4D oder eine nahezu ähnliche Komponente von DevArt (glaub TVirtualDataSet heißt sie). Leider hat man sich bei FMX für die doch arg verwurschtelte LiveBinding Technologie entschieden, wo man erst irgendwelche BindSourceAdapterSchießmichtot Komponenten benötigt, um ein Dataset an die diversen Controls zu binden.

Aber ich fühl mich sowieso im Backend, in der Runtime und bei der Entwickung von Developer Tools wohler als im UI Geraffel
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (10. Feb 2022 um 19:09 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.445 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: MVVM - MVC wer macht was, was ist möglich....

  Alt 11. Feb 2022, 08:35
Hoi, Danke für Deine Antwort.
Ich meine bleib lieber an Spring4D dran, das ist für Delphi wichtiger. (Danke dafür )

Datasets verwenden wir gar nicht. Die DB ist recht tief unten gekapselt mit einem ORM-Mapper.

Wir haben nur eine begrenzte Anzahl von UI-Controils die wir verwenden. Das Binding machten wir dann für jeden Typ dann halt separat.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz