One of the few things everyone should agree regarding MVC is that it can mean many different things. An additional problem, is that depending on whether we're trying to implement it (purely server side, purely client side or mixed) some ideas can not be applied. For example, a client side Web controller can not subscribe to a Server Side Model (well, unless we're using Comet, WebSocktes or the likes).
If we add related patterns to the mix, like MVP and MVVM, the confusion and concepts war grows bigger and bigger. I'd like to think of this entry as an open one where maybe some day I'll publish some personal conclusions (if I ever have ones that are worth to share...) but by the moment I'll have to make do with pasting below links to some of the best articles that I've read about this lately.
- MVC vs. MVP vs. MVVM
- Scaling Isomorphic Javascript Code (yes, the title sounds intimidating to say the least :-)
- Understanding MVVM – A Guide For JavaScript Developers
- Model-View-ViewModel (MVVM) Explained
- Comparison of 2 of the big MVVM players at this moment, backbone.js vs knockout.js
So far I will say that I don't fully understand all the hype around MVVM JavaScript frameworks. I'm mainly doubtful about the data binding between the VM and the View. On one side, most samples I've seen so far are rather trivial, and on the other side I feel much more comfortable with a MVP approach, with the Presenter telling the View what to do in a generic way (showEmployess, preventEditions...) that different views could implement in a completely different way (a grid, a html list, hide or disable...)
No comments:
Post a Comment