DMVVM-ES

Practice exercises to try to understand the MVVM pattern and perhaps end the development of a small and useful MVVM Framework for Delphi.
Other frameworks used
Work team
We are a small group of programmers that we get together on Telegram ( Delphi MVVM group in Spanish ) and there we share our ideas and doubts
Interest links
https://www.youtube.com/watch?v=ci1hp8zbjxk
https://blog.grijjy.com/2018/01/22/mvvm-starter-kit-part-1-of-3/ https://github.com/grijjy/mvvmstarterkit
https://bitbucket.org/sglienke/knockoff/src/master/ https://delphisorcery.blogspot.com/2015/06/anonymous-method-overloading.html
https://bitbucket.org/sglienke/dsharp/src/master/ https://github.com/jpluimers/conferences/blob/master/2015/20151020-dapug-denmark-nyborg-hotel-hesselet/2015 1020-CALIBURN/01-INT-MVVM-DSHARP-CALIBURN/MVVM-IN-DELPHI-UHE-CALIBURN-MICRO-FOR-DELPHI-FRAMEWORK.MD https://delphisorcery.blogspot.com/2011/12/putting-pieces-toger-dsharp.html
https://github.com/msnts/glue
https://github.com/bogdalak/command-delphi
Modified https://github.com/delphipraxis/mvvmstarterkit/commits/master
Ideas to take into account
- Motor allows the record of different types of Binding strategies/methods
- Possibility of enabling/disable all bindings?
Prototype 0 (finished)
Goals:
- The objective is not to create wonderful model-viemodel-vistas, so the example itself may not make excessive meaning
- The Core MVVM must be agnostic of the platform (VCL/FMX)
- There must be services (UI) to the platform, which can be invoked from any of the levels (normal from the VM), a simple service has been created
- The exercise of creating unitary tests for the model and viewmodel-vista has been done
- A specific view for FMX and another for VCL has been created, as well as an FMX app and another VCL to test functionality
- In this specific case the viewmodel has some functionalities similar to the model itself, we are almost bridge, so the unit tests themselves are similar
- A ViewModel (or several) can be linked to a model, and this viewmodel can support as many views as they are hooked
- The view is not worked
Prototype 1 (in progress, still visible sources are from the prototype. 0)
Goals:
- Add message engine to the system: analyze if it is better for the pattern to observe for the <- no model
- Grijjy/DSharp/Knockoff/GLUE engine bindings analysis to see what good ideas can be incorporated to. Knockoff: There are no specialized classes or interfaces to be used in any of the 3 layers, attributes for binding are used. Complex to perform b. GLUE: It seems incomplete, without complete examples c. DSHARP: not yet analyzed d. Grijjy: It seems the most complete and simple to understand to apply it as a reference. More examples are missing
- Integrate the CORE the possibility of different Binding strategies, which can be registered
- Integrate Ideas from the Grijjy framework (luckily they in their blog give permission to use their framework to make others)
- Prototype 1 for the moment will have a 1-1 correspondence between view and modelview
Prototype 2
Goals:
- Create Rest customer (clients external to the app) and see fit the model, what can be automated, what not, difficulties, ...
- Tethering app: fits?