User:Aninditamozumder/Can JS

CanJS is a client side MVC library for building web applications. It simplifies the development of complex programs. It provides all the structure of the MVC (Model-View-Control) pattern along with templates with live binding and routing support. One of it's advantages is that it has a rich set of extensions and plugins and supports jQuery, Zepto, Mootools, YUI and Dojo. It was introduced in 2012 by Bitovi.

Features of Can JS
Can JS is one of the most popular Javascipt frameworks. Given below are its features
 * Can JS is flexible . This is possible because Can JS supports multiple libraries and frameworks. For example, if we would like to share our code between disparate platforms such as a Zepto mobile app and a jQuery desktop app, we can do so using Can JS. Although Can JS is extracted from JavaScriptMVC it can support almost all of its MVC functionality through plugins.
 * Can JS occupies very little size, compared to other Javascript frameworks such as Angular or Ember. Hence, it has very high speed. This high speed is also achieved by live-binding, which updates only when required.

Packages that are included in Can JS:

 * can.Construct – A Package for inheritable constructor functions
 * can.Observe – A package for key-value binding
 * can.Model – A package that observes connected to a RESTful JSON interface
 * can.view – A package for template loading, caching, rendering
 * can.EJS – A package for live binding of templates
 * can.Control – A package for declarative event bindings
 * can.route – A package for back button and bookmarking

Migrating Can JS 2.0
It is easy to migrate a project from Can JS 1.1 to Can JS 2.0 because Can JS 2.0 is backward compatible. The new features introduced in Can JS 2.0 which are not present is Can JS 1.1 are listed below
 * 2 way bindings
 * custom elements with can.Component
 * mustache event bindings