JavaScript Framework Evaluation
Backbone
Overview:
Backbone is lightweight, flexible and offers a minimalist solution to separating concerns in an application. It is not super opinionated and does not lock a developer into the Backbone way of doing things. Out of the box, the framework supports a persistence layer, RESTful sync, models, views, collections, event-driven communication, templating and routing. Developers are not locked into these constructs and have the ability to provide their own implementations.
Highlights:
- Follows Model-View* (see understanding MVVM by Addy Osmani)
- Minimal size with about 800 lines of code
- RESTful models
- Simple views (Must provide view-rendering mechanism)
- No impact on server architecture
- No impact on file organization
- Does not need to own the entire page
- Choose your own template engine (String-based handlebars.js is most common).
- Routing (optional - could be interesting but co development with backend side and architecture)
Pros:
- Backbone is incredibly simple, it only has four major components: Collections, Models, Views and a Router.
- Allows developers the ability to easily override parts of the framework to suit custom needs.
- Can leverage extension community to address common problems (i.e., Marionette, Chaplin )
- works fine with jQuery or without
- can handle multiple pages in a single page.
- lightweight
Cons:
- Backbone's documentation on progress real world examples. see jQuery Mobile doc, backbone fundamentals book in progress)
- Backbone does not ship with baked-in solutions to common problems ( i.e., Form validation, sub-views and view rendering, etc. ), but could be interesting in a mix approach springMVC / MVVM - couldn't really say for sure depending on springMVC side 's hability to trust and share Css3 and ECMAscript/JavaScript from what I see in France and not to see this as handicraft.
- Developers must either provide custom solutions to common problems or adopt a solution from the extension community, but some are already doing this in the real life in spring / jsf development too - do not see any kind of provocation in this on my part.
- While simple at the start, Backbone applications can become very complex and difficult.
Demos:
- TodoMVC : demo: http://todomvc.com/architecture-examples/backbone/ sources: https://github.com/addyosmani/todomvc
AngularJS
Overview:
// TBA
Highlights:
// TBA
Pros:
// TBA
Cons:
// TBA
Demos:
// TBA
Knockout
Overview:
// TBA
Highlights:
// TBA
Pros:
// TBA
Cons:
// TBA
Demos:
// TBA