javascript frameworks comparison

54
Ganesh P A, Technical Architect

Upload: deepu-s-nath

Post on 16-Jul-2015

253 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Javascript Frameworks Comparison

Ganesh P A, Technical Architect

Page 2: Javascript Frameworks Comparison

A WALK THROUGH - JAVASCRIPT

FRAMEWORKS

Page 3: Javascript Frameworks Comparison

JAVASCRIPT MV* FRAMEWORKS

Organize code using variations of MVC Pattern

Helps in Readable, structured,

testable and maintainable code

Tying together a DOM manipulation library

Templating

Routing

Page 4: Javascript Frameworks Comparison

BIG FOUR

Page 5: Javascript Frameworks Comparison
Page 6: Javascript Frameworks Comparison

Maintained by Google and community

Initially Released on 2009

Current stable release 1.3.x(Feb 2015)

~110 kb (gzip/minified)

Miško Hevery and Adam Abrons

Page 7: Javascript Frameworks Comparison

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.3.0 (Feb 2015)

~21 kb (gzip/minified)

Page 8: Javascript Frameworks Comparison

Created by Jeremy Ashkenas,

Initially Released on October 2010,

Current stable release 1.1.2

~6.5 kb (gzip/minified)

Page 9: Javascript Frameworks Comparison

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.10.0

~102 kb (gzip/minified)

Page 10: Javascript Frameworks Comparison

Comparison

Scoring system

OK Not Good Good

Page 11: Javascript Frameworks Comparison

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

HELLO WORLD

Page 12: Javascript Frameworks Comparison

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

Page 13: Javascript Frameworks Comparison

Github

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

Page 14: Javascript Frameworks Comparison

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

Page 15: Javascript Frameworks Comparison

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

Page 16: Javascript Frameworks Comparison

DEPENDENCIES

Page 17: Javascript Frameworks Comparison
Page 18: Javascript Frameworks Comparison
Page 19: Javascript Frameworks Comparison

NO DEPENDENCIES

Page 20: Javascript Frameworks Comparison

NO DEPENDENCIES

Page 21: Javascript Frameworks Comparison

DATA BINDING

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

Page 22: Javascript Frameworks Comparison

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 23: Javascript Frameworks Comparison

Data-binding is fully supported

Models use standard JSON properties (e.g. car.color = "red";)

Provides Option for Creating custom bindings

Page 24: Javascript Frameworks Comparison

Data-binding is not supported by default.

There are plugins available to support Data-binding

Page 25: Javascript Frameworks Comparison

Data-binding is fully supported

Models use getters and setters but the binding is automatically and better than Backbone.

Page 26: Javascript Frameworks Comparison

Used for routing your applications URL's when using hash tags(#) and/or HTML5 history API

Maps an url to a javascript function

ROUTERS

Page 27: Javascript Frameworks Comparison

/person/12/101

Routing is very simple

Page 28: Javascript Frameworks Comparison

Router is similar to Backbone’s

/person/12/101

Page 29: Javascript Frameworks Comparison

Router is extremely capable, but very complex

Supported embedded routes

/person/12/101

Page 30: Javascript Frameworks Comparison

Knockout does not support routing by default

Still Routing is easily configurable by following third party libraries

Page 31: Javascript Frameworks Comparison

VIEWS

How the stuffs are displayed in the screen

Page 32: Javascript Frameworks Comparison

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 33: Javascript Frameworks Comparison

Uses HTML as templating language

Automatically pulls in HTML templates via AJAX when needed

Page 34: Javascript Frameworks Comparison

Extensive view type support

Very easy to create re-usable components

Handlebars are used for templating

Page 35: Javascript Frameworks Comparison

Uses HTML as templating language

Supports

Native templates

Using default control flow bindings

String based templates

Third-party template engine

Page 36: Javascript Frameworks Comparison

TESTING

Support for testing application

Page 37: Javascript Frameworks Comparison

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

Page 38: Javascript Frameworks Comparison

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

Page 39: Javascript Frameworks Comparison

Poor testing initially Pretty good testing support now

Page 40: Javascript Frameworks Comparison

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

Can use following third party solutions

Page 41: Javascript Frameworks Comparison

DATA

How do I get data from the sever?

Page 42: Javascript Frameworks Comparison

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

Page 43: Javascript Frameworks Comparison

No JQuery

Can do with Angular’s $http but much better using $resource

Very good API

Requires the ngResource module to be installed.

Page 44: Javascript Frameworks Comparison

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 45: Javascript Frameworks Comparison

Uses JQuery’s $.ajax

Uses knockout mapping plugin

Maps JavaScript object into a view model with the appropriate observables

Page 46: Javascript Frameworks Comparison

How easy to get help?

COMMUNITY /DOCUMENTATION

Page 47: Javascript Frameworks Comparison

How easy to get help?

THIRD PARTY INTEGRATION

How easy to integrate another JS library?

Page 48: Javascript Frameworks Comparison
Page 49: Javascript Frameworks Comparison
Page 50: Javascript Frameworks Comparison
Page 51: Javascript Frameworks Comparison
Page 52: Javascript Frameworks Comparison
Page 53: Javascript Frameworks Comparison
Page 54: Javascript Frameworks Comparison

Hello World

Dependencies

Data binding

Routers

Views

Testing

Data

Community/Doc

umentation

Third party

integration

Development

tools