MVVM Framework für Delphi
Hallo zusammen,
nachdem ich die letzten Wochen in WPF und C# unterwegs war, habe ich mir die Frage gestellt, ob es eigentlich ein brauchbares MVVM Framework für Delphi gibt?! Vielen Dank im Voraus ;) |
MVVM Framework für Delphi VCL/FMX
Ich greife mal den Thread auf, da ich mehr oder minder dieselbe Frage erneut stelle.
Ich habe erste Versuche in MVC und MVVM ohne ein Framework zu verwenden unternommen, im Großen und Ganzen funktioniert es auch so wie gewünscht, nur die Komplexität des Quellcodes und damit der Aufwand ist aber nicht ohne. Für die einzelne Programmfunktionen wurden einzelne Controller bzw. ViewModels geschrieben, die wiederum einzelne Modele vorrausetzen. Man hat zum Schluss sehr viele einfache Klassen in sehr viele Dateien geschrieben. Ein Großteil des Quellcodes besteht nur darum sicherzustellen, dass die einzelnen Komponenten mit einander Daten/Informationen austauschen können, also der Anwender löst im View eine Aktion aus, die dem ViewModel mitgeteilt wird, das wieder dem Model weiterreicht und dann endlich eine Aktion ausführt und das Resultat wird dann wieder dieselbe Kette rückwärts bis in den View über mittelt. Beachten muss man das ViewModel und das Model selbst wieder aus vielen einzelnen Komponenten bestehen, die wiederum selbst Daten/Informationen untereinander austauschen müssen. Das Ganze verlangsamt das Programmieren von relativ kleinen VCL bzw. FMX Anwendungen deutlich und macht das ganze nur bedingt praktikabel, nun bin ich auf der Suche nach Beispiele, die die Komplexität minimieren und bin dabei auf ein interessanten Mitschnittes eines Seminars gestoßen Introduction to MVVM - The Delphi Way https://www.youtube.com/watch?v=dOXXtitTy3s In dem knapp einstündigen Mittschnitts wird u.a. ein VCL Beispiel unter Verwendung eines MVVM Framework besprochen. Dieses Framework verwendet Generics und die RTTI, so dass man relativ wenig Glue Code in seiner eigentlichen Anwendung schreiben muss. Was ich aus dem Video noch nicht entnommen konnte, ob der Beispiel Quellcode veröffentlich wird oder nicht bzw. wie man mit dem vortragenden Redner Kontakt aufnehmen kann. Gibt es irgendwo ein Beispiel VCL/FMX, dass unter Verwendung eines Frameworks das MVVM Pattern (oder Artverwandte) umsetzt? |
AW: MVVM Framework für Delphi
Hi,
hier vom Skill Sprint 19.8.2014: https://www.youtube.com/watch?v=sGn3-CsCYYM Build an MVVM App in Twenty Minutes with Nick Hodges Code gibt es sicherlich irgend wo zum runter laden (kommt i.d.R. auf der letzten Folie) Grüße |
AW: MVVM Framework für Delphi
In die zwei Videos werde ich mal noch reinschauen...
Aber grundsätzlich finde ich MVVM in der Praxis (unnötig?) komplex. Ich bin ja zu C# gewechselt und habe mir auch mal WPF+MVVM (incl. DevExpress) angesehen. Es kann natürlich an mir liegen, aber ich bin damit nicht klar gekommen. Es gibt aus meiner Sicht zu viele Abhängigkeiten der einzelnen Schichten. Ich wünsche mir eigentlich eher ein direktes Binding wie es mit den LiveBindings angedacht war (die aber nicht wirklich einsetzbar sind). Auch in DSharp erschien mir der MVVM- oder MVP-Ansatz (ich weiß nicht mehr genau) zu kompliziert. Jedenfalls konnte ich die Demo nicht nachvollziehen. Ich hatte ja mal ein Binding-Framework angefangen: http://www.delphipraxis.net/173360-s...framework.html Das ist natürlich nicht die Spitze der aktuellen möglichen Technologie, aber diese Arbeitsweise finde ich immer noch sinnvoll und wünschenswert. Es lassen sich sehr leicht Businessobjekte definieren und die Bindung zur GUI lässt sich ebenso leicht herstellen. Den Grundgedanken will ich daher noch nicht endgültig verwerfen. MVVM will natürlich eine Trennung zwischen BL und GUI erreichen, was sinnvoll ist. Der Aufwand für den Programmierer ist aber im Allgemeinen sehr hoch um diese beiden Schichten und das Binding zu organisieren. Ich würde mir eine Lösung wünschen, die einen extrem einfachen getrennten Aufbau von BL und GUI ermöglicht und die Bindung zwischen Controls und BL-Objekten im Sinne einer Verdrahtung realisiert. PS: Der Beitrag kann auch gerne nach http://www.delphipraxis.net/160506-t...tellungen.html verschoben werden. ;-) |
AW: MVVM Framework für Delphi
@Lemmy
Danke für den Hinweis, Nick verwendet leider kein Framework - trotzdem sehr Intersannt. @stahli Bindings ist sicherlich ein sehr wichtiger Punkt und das hat mich in dem Introduction to MVVM - The Delphi Way aufhorchen lassen, es sind nur 3 Zeilen Code für 3 Bindungen! Erklärt bzw. gezeigt wird in dem Video hier an dieser Stelle https://www.youtube.com/watch?v=dOXXtitTy3s#t=28m08s Die MVVM Demo Code Erklärung startet hier https://www.youtube.com/watch?v=dOXXtitTy3s#t=25m08s Sinn eines Frameworks ist es mit möglichst wenig Programm Code aus zukommen und das wird hier wirklich gut im Video gezeigt. https://www.youtube.com/watch?v=dOXXtitTy3s#t=35m36s Eine Programmänderung erfordert nur Anpassungen des Quellcodes im ViewModel. |
AW: MVVM Framework für Delphi
DSharp hast Du Dir bereits angeschaut?
|
AW: MVVM Framework für Delphi
Zitat:
Ich habe zwischen 2009 und 2010 in einem Projekt sehr massiv das MGM (Model Gui Mediator) Pattern eingesetzt, das fand ich einfach, schlank und einfach anzupassen... fertige frameworks mit umgesetzten fertigen MVVM habe ich bisher noch nicht angeschaut (in Delphi) |
AW: MVVM Framework für Delphi
Bindings gibt es doch in MVVM. Man zieht nur eine Schicht rein, damit man die Businessobjekte von den visuellen Anforderungen trennen kann (Bereitstellung einer Lookup-Liste z.B.)
MVVM ist ähnlich überflüssig wie ein solides Architekturkonzept für ein Haus. Deine Gartenlaube benötigt so etwas nicht, auch der Anbau am Seitenflügel deines Einfamilienhauses nicht. Auch ein Fertighauß kommt ohne Konzept aus. Aber ein Hochhaus, oder gleich eine ganze Stadt, kommt ohne Architektur und sehr durchdachte Konzepte nicht aus, denn wenn Du die Kabelschächte vergessen hast, aber im Dachgeschoß doch Abwasser und Strom brauchst, siehst du sonst alt aus. Ich würde persönlich einem RAD-Tool wie Delphi allerdings kein MVVM aufstülpen, obwohl das mittlerweile einigermaßen hinhaut: Jede IDE/Programmiersprache bzw. Framework hat seine Vorteile. Kann sein, das das toll funktioniert, aber das ist beinahe so, als ob man mit nem Mini Pakete ausfährt. Geht, aber der Mini wurde wegen des Parkplatzmangels in der City zugelegt. Zum Ausfahren nehme ich dann noch den Lieferwagen. Gerade benötige ich einen Prototypen für eine Mobile-App und ärgere mich, daß ich kein Delphi rumzuliegen habe, mit dem das am schnellsten ginge. |
AW: MVVM Framework für Delphi
Zitat:
|
AW: MVVM Framework für Delphi
MVVM in Delphi braucht halt sehr viel Disziplin. Aber der Vorteil ist bei Cross-Plattform-Entwicklung schon nicht zu verachten. Bis zum View-Model bleibt ja alles gleich; nur der konkrete View ist anders. Ebenso kann ich in einem Programm für einen Kunden einen anderen View einbauen, ohne dass mir irgendwas um die Ohren fliegt. Die Bindings zwischen View und View-Model werden ja in den meisten Frameworks sowieso über Konventionen erzeugt.
Wir arbeiten aber aktuell auch nicht mit MVVM, was wohl daran liegt, dass wir nur noch Legacy-Anwendungen in Delphi haben. Da ist die Stoßrichtung eher Evolution als Revolution ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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