54
1 A WALK THROUGH - JAVASCRIPT FRAMEWORKS

Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Embed Size (px)

DESCRIPTION

Introduction and Comparison of polpular JS Frameworks Knockout, Ember, Angular and Backbone. The presentation descrobes How and when to select each framework.

Citation preview

Page 1: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

1

A WALK THROUGH - JAVASCRIPT FRAMEWORKS

Page 2: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

JAVASCRIPT MV* FRAMEWORKS

Organise code using variations of MVC Pattern

Helps in Tying together a DOM

manipulation library Templating Routing

Page 3: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

BIG FOUR

Page 4: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Maintained by Google and community

Initially Released on 2009 Current stable release

1.2.18 (June 13, 2014) ~37kb total (gzip / minified)

Miško Hevery and Adam Abrons

Page 5: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Developed and is maintained by Steve Sanderson, a Microsoft employee

It is a personal open-source project, and not a Microsoft product.

Released on July 5, 2010 Current version 3.1.0 (March 18,

2014) ~17kb total (gzip / minified)

Page 6: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Created by Jeremy Ashkenas, Initially Released on October

2010, Current stable release 1.1.2

(February 20, 2014) ~6.5kb total (gzip / minified)

Page 7: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Created by Yehuda Katz, a member of the jQuery, Ruby on Rails and SproutCore core teams.

Initially released as the SproutCore 2.0 framework later renamed as Ember.js

Initial release : 2011 Current stable release 1.5.1

(April 22, 2014) ~71 kb total (gzip / minified)

Page 8: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Comparison

Scoring system

OK Not Good Good

Page 9: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

How fast can I get up and running from homepage link?

Page 10: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Github https://github.com/jashkenas/backbone

Page 11: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Github − https://github.com/emberjs/ember.js

Page 12: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Github https://github.com/angular/angular.js

Page 13: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Github https://github.com/knockout/knockout

Page 14: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

DEPENDENCIES

Page 15: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 16: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 17: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

NO DEPENDENCIES

Page 18: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

NO DEPENDENCIES

Page 19: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

DATA BINDING

Process that establishes a connection between the application UI (User Interface) and business logic

Page 20: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Data-binding is fully supported

Data can be bind into many attributes like text,value, options, enable etc

Provides Option for Creating custom bindings

Page 21: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Data-binding is fully supported Models use standard JSON properties (e.g. car.color = "red";)

Provides Option for Creating custom bindings

Page 22: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Data-binding is not supported by default.

There are plugins available to support Data-binding

Page 23: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Data-binding is fully supported Models use getters and setters but the binding is

automatically and better than Backbone.

Page 24: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Used for routing your applications URL's when using hash tags(#)

Maps an url to a javascript function

ROUTERS

Page 25: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

/person/12/101

Routing is very simple

Page 26: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Router is similar to Backbone’s

/person/12/101

Page 27: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Router is extremely capable, but very complex Supported embedded routes

/person/12/101

Page 28: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Knockout does not support routing by default Still Routing is easily configurable by following third party libraries

Page 29: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

VIEWS

How the stuffs are displayed in the screen

Page 30: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Simple and straight forward. Easy for developer with JQuery and DOM skills Simply extend Backbone.View, grab an element and put stuff in it No Official Templating, but easy to add using

Page 31: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Uses HTML as templating language Automatically pulls in HTML templates via AJAX when needed

Page 32: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Extensive view type support Very easy to create re-usable components Handlebars are used for templating

Page 33: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Uses HTML as templating language

Supports Native templates

Using default control flow bindings String based templates

Third-party template engine

Page 34: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

TESTING

Support for testing application

Page 35: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

No default test solution; Test it your own Can use following third party solutions

Page 36: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Fantastic test support. Designed from the beginning to be easy to test. Karma developed by Angular JS team is popular test runner

Page 37: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Poor testing initially Pretty good testing support now

Page 38: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

As of now, no default debugging tools Functions like Console.log(), ko.toJSON() helps debugging process

Can use following third party solutions

Page 39: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

DATA

How do I get data from the sever?

Page 40: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Uses JQuery’s $.ajax to power Backbone. Very Easy to understand Default behaviour is relatively easy to override

Page 41: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

No JQuery Can do with Angular’s $http but much better using $resource Very good API

Requires the ngResource module to be installed.

Page 42: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Uses JQuery’s $.ajax under the covers Just “getting data” is relatively easy to do e.g.

Doing things the “Ember way” is a bit more complex

Page 43: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Uses JQuery’s $.ajax Uses knockout mapping plugin Maps JavaScript object into a view model with the appropriate observables

Page 44: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

How easy to get help?

COMMUNITY /DOCUMENTATION

Page 45: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

How easy to get help?

THIRD PARTY INTEGRATION How easy to integrate another JS library?

Page 46: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

DEVELOPMENT TOOLS

Page 47: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 48: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 49: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 50: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 51: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 52: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 53: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Page 54: Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone

Thanks