Ember is an application framework based on the model-view-controller pattern. By incorporating common patterns and idioms into the framework it aims to allow developers to create ambitious web applications quickly and easily. A side-effect of these abilities (either negative or positive depending upon the readers point of view) is that a certain conformity of naming and structure within those applications is expected.
A key aim of the Ember project is that backward compatibility is an important feature of the framework so that applications may be built with Ember in the knowledge that future releases of the framework will not break those applications.
Ember relies upon the following core concepts:
- Templates: Ember.js templates use handlebars style syntax and are used to integrate data with pre-written HTML.
- Models: In Ember.js models allow the objects which the web application makes use of to be persisted.
- Routes: A route loads a component, a template and, optionally, some models. The resulting HTML is then rendered to the user agent.
- The Router: Maps a URL to a given route.