First and foremost: THANKS for eMVC! I've been researching on-and-off for
years now how to best design UI logic for programs. MVC certainly comes up,
but nothing that really addresses forms based enviroments like Delphi. I
just discovered some research that denoted "Classic MVC" from a more
modern MVC which accounts for
controls/widgets like Delphi....
...and then I ran into eMVC! :)
I'm still comming up to speed on it, but I do have one
suggestion (one I've already implemented in my copy of eMVC):
Now some ideas for the next release:
I personally think it would be a good ideal for the most of various
identifiers in your unit, and the unit name itself, to have a prefix of
"eMVC" (or "TeMVC", "IeMVC", ect), to avoid collisions with other units /
patterns. I do understand why you use IObserver /IObservable for the
interfaces to the observer pattern (ie make available for other uses beyond
just eMVC), but I still think it would be a good idea to use the prefix(es)
to avoid name polution.
The other item for future versions of your user's guide: it isnt fully
clear on what/how to use the parameter for the Notify()/UpdateView() - the
examples use TCommand, which indeed is a very good idea but was confusing
with using TCommand for mset-to-mset communications. More importantly,
unless one looks at the source code of the unit, its not at all obvious
that supplying nil for the parameter for the Notify()/UpdateView() WILL
RESULT IN THE UPDATES NOT OCCURING! This should be mentioned in the
documentation. (I'm sure there is a reason, but I cant think of why one
couldnt have a nil parameter for simple applications...)
Anyway, I know I can make both of these recommendations to my own copies,
but I wanted to pass them along to you for your consideration.
Thanks for solving alot of my problems! :-))
Nobody/Anonymous
Interface Improvements (example)
Next Release (example)
Public
|
Date: 2007-01-07 09:29
|