SlideShare a Scribd company logo
1 of 35
Webinar
Javascript MVC Frameworks-
Backbone, Ember and Angular Js
The Paradigm Shift and
The Impact on Application
Development
Panelists
Mahesh Kumar Kharade
Associate Architect
Harbinger Systems
Meera Navale
Software Engineer
Harbinger Systems
© Harbinger Systems | www.harbinger-systems.com
Agenda
• Overview
– Web Application UI
– Single Page Applications [SPA]
• JavaScript Ecosystem
• JavaScript [JS] MVC
– Features
– Architecture
– Key Components
• Key JS MVC Frameworks
– Backbone JS
– Angular JS
– Ember JS
• Choosing the Framework
• Case Study
© Harbinger Systems | www.harbinger-systems.com
Overview: Web Application UI
• Not just Basic HTML views like
– Grids
– Lists
– Charts
• More real-time components
like
– Online User Counters
– Real-time Feeds
– Overall number of components
on webpage
– Web views becoming Web
Applications
• Role of REST APIs
© Harbinger Systems | www.harbinger-systems.com
• Client side processing
• Mobile Support
• HTML5
– Local Storage
– pushState
• JS templating engines
– Mustache.js
– Twig.js
What is SPA?
• Single Page Application is a web app in which the
majority of interactions are handled on the client
without the need to reach a server, with a goal of
providing a more fluid user experience
© Harbinger Systems | www.harbinger-systems.com
SPA: Driving Factor for JS Frameworks
• It is an application so it can do Cool Stuff!
• Responsive, native application feel. No page flicker!
• Faster UI, More Interactive
• Most of the page processing happens client side,
offloading server load
• Massive tooling support, Vibrant community
• Code reuse, REST endpoints are general purpose and
can be used for multiple applications
• UI is just another Client
• Perfect for supporting multiple platforms
© Harbinger Systems | www.harbinger-systems.com
Business Usage
• Create “App-like user experience”
• Bind to your own (or 3rd party) RESTful API
• Build hybrid (native) HTML5 applications
• Mobile version of your website
© Harbinger Systems | www.harbinger-systems.com
The SPA sweet spot is likely not on web sites,
but on content-rich cross-platform mobile apps
MVC JavaScript
• Front end developers know JavaScript
• Better organization to front end applications
• Abstract complexity
• Good integration with JavaScript frameworks
• An easier way to do tests
© Harbinger Systems | www.harbinger-systems.com
JavaScript Ecosystem
© Harbinger Systems | www.harbinger-systems.com
JavaScript MVC
Framework
( EmberJS,
JavaScriptMVC,
Backbone.js, … )
JavaScript
Frameworks
( jQuery,
MooTools,
YUI Library,
Dojo
Toolkit,…)
Template
Frameworks
( Mustache,
JAML, Eco,
ICanHaz.js,
JQote 2, … )
Testing
Frameworks
(QUnit, Jasmine
SinonJS, … )
Dynamic Stylesheet
Language
( SASS, LESS )
Mobile
Frameworks
( PhoneGap,
Zepto, … )
Minification
Frameworks
( YUI compressor
JSMIN, … )
Building Blocks of JS MVC
© Harbinger Systems | www.harbinger-systems.com
Source: http://www.slideshare.net/SC5/building-single-page-applications-16543203
MVC Architecture
© Harbinger Systems | www.harbinger-systems.com
view
controller
Model
Client side Server side
web services
DOM
back end
Top JS MVC Frameworks
© Harbinger Systems | www.harbinger-systems.com
• A lightweight MVC framework
• Born in 2010
• Popular as a lean alternative to heavy,
full- featured MVC frameworks such as
ExtJS
© Harbinger Systems | www.harbinger-systems.com
Backbone JS : Main concepts
• Model
• Collection
• View
• Template
• Router
• History
• Events
© Harbinger Systems | www.harbinger-systems.com
MVC: Backbone
© Harbinger Systems | www.harbinger-systems.com
Source: http://www.jboss.org/jdf/examples/ticket-monster/tutorial/UserFrontEnd/
•Open-source JavaScript framework
•Developed in 2009
•Maintained by Google
•Actively developed and supported
© Harbinger Systems | www.harbinger-systems.com
Key Features of AngularJS
• Declarative HTML approach
• Easy Data Binding: Two way Data Binding
• Reusable Components
• MVC/Model View View Model (MVVM)Design
Pattern
• Dependency Injection
• End to end Integration Testing / Unit Testing
• Routing
• Templating
© Harbinger Systems | www.harbinger-systems.com
HTML Compiler
• Angular's HTML compiler allows the developer to
– Teach the browser new HTML syntax
– Attach behaviour to any HTML element or attribute and even create
new HTML elements or attributes with custom behavior
– Angular calls these behaviour extensions directives
• Compiler is an angular service which traverses the DOM
looking for attributes. The compilation process happens in
two phases.
– Compile: traverse the DOM and collect all of the directives. The result
is a linking function.
– Link: combine the directives with a scope and produce a live view. Any
changes in the scope model are reflected in the view, and any user
interactions with the view are reflected in the scope model. This
makes the scope model the single source of truth.
© Harbinger Systems | www.harbinger-systems.com
MVVM: AngularJS Way
© Harbinger Systems | www.harbinger-systems.com
VIEW
• User
Interface
• Reusable
Components
• UI Logic
• Observers &
Notify View
Model
CONTROLLER
• Maintain
state
• Define
Application
Behavior
• Maps user
actions to
Model
VIEW MODEL
• Presentation
Logic
• State
• Observe
Mutations
• Notify View Data Processing
Data Binding
Commands
Notifications
Events
User Interactions
Other Key Components of an Angular Application
Dependency Injection | Directives | Filters | Templates
© Harbinger Systems | www.harbinger-systems.com
•Open-source client-side JavaScript web
application framework
•Developed in 2011
Ember JS
• Borrowed ideas pioneered by native application frameworks
like Cocoa and Smalltalk
• Small choices are made for you, just like Rails
• Convention over configuration
• Dependencies
– jQuery
– Handlebars.js – Template Language
© Harbinger Systems | www.harbinger-systems.com
“It is more important to reduce the effort of
maintenance than it is to reduce the effort of
implementation”
Max Kanat-Alexander, Code Simplicity
Ember in the Wild
discourse.org | zendesk.com | livingsocial.com | groupon.com | sqaureup.com | Yapp.us
Core Concepts
• Templates
• Routers
• Components
• Models
• Routes
• Views
© Harbinger Systems | www.harbinger-systems.com
Comparative analysis: AngularJS
• The Good
– Has brought many innovative concepts to the world of web
developers
– Two-way data binding saves a lot of boilerplate code
– The largest community and much more online content
– Better modularity achieved
– Easy to create reusable components and extending HTML
by defining new elements, attributes and behaviors
– A lot of emphasis on separation of concerns, unit isolation
and provides ready-to-use, powerful mocks for
fundamental built-in services
© Harbinger Systems | www.harbinger-systems.com
Comparative analysis: AngularJS
• Pain Points
– The complexity of the Directives API
– Use of templates, reduces testability
– Coding errors/typos hard to locate
– A lot of interactive elements, Angular becomes really slow
© Harbinger Systems | www.harbinger-systems.com
Comparative analysis: BackboneJS
• The Good
– Lightweight, fast and has a small memory footprint
– Learning curve is very linear
– Great documentation
– API very stable
• Pain Points
– Does not provide structure
– Memory management have to be carefully considered
– Lacks support for two-way data binding
– Hard to unit-test, more fragile and less reusable
© Harbinger Systems | www.harbinger-systems.com
Comparative analysis: EmberJS
• The Good
– Automatically infer much of the configuration itself
– an excellent router and an optional data layer that
integrates really nicely with backend like RoR or any other
RESTful JSON API
– Better Performance: application loads and runs fast
• Pain Points
– API changed much before it stabilized, there is a lot of
outdated content and examples that no longer work
© Harbinger Systems | www.harbinger-systems.com
Choosing Framework
• Features
– JavaScript MVC Frameworks are a set of common features
– main features of a JavaScript MVC Framework
• Two-way Binding between HTML and a client-side JavaScript
object model
• View Templates
• Data Storage (local or through a web server to a database)
• URL Routing (keeping the back button working and search engines
happy)
© Harbinger Systems | www.harbinger-systems.com
Choosing Framework
• Maturity
– How many real-world production apps are using these
frameworks and how many users do these apps have?
– How good is the documentation and how many
examples/tutorials are available?
– Are the examples up to date?
– How stable is the API?
– Do other developers know or are they getting to know this
technology?
© Harbinger Systems | www.harbinger-systems.com
Choosing Framework
• Size
© Harbinger Systems | www.harbinger-systems.com
39.5
6.5
90
0
20
40
60
80
100
Angular JS Backbone JS ember.js
Size (kb)
Size
Choosing Framework
• Dependencies
© Harbinger Systems | www.harbinger-systems.com
39.5
50 ( jQuery
+
Underscore)
136.2
(jQuery +
Handlebars)
0
20
40
60
80
100
120
140
160
Angular JS Backbone JS ember.js
Size (kb)
Size
Choosing Framework
• Community
© Harbinger Systems | www.harbinger-systems.com
Metric AngularJS Backbone.js Ember.js
Stars on Github 27.2k 18.8k 11k
Third-Party
Modules
800 ngmodules 236 backplugs 21 emberaddons
StackOverflow
Questions
49.5k 15.9k 11.2k
YouTube Results ~75k ~16k ~6k
GitHub
Contributors
928 230 393
Chrome Extension
Users
150k 7k 38.3k
Source: https://www.airpair.com/js/javascript-framework-comparison
DEMO screens
© Harbinger Systems | www.harbinger-systems.com
DEMO screens
© Harbinger Systems | www.harbinger-systems.com
Q&A
© Harbinger Systems | www.harbinger-systems.com
Thank You!
Visit us at: www.harbinger-systems.com
Write to us at: hsplinfo@harbingergroup.com
Blog: blog.harbinger-systems.com
Twitter: twitter.com/HarbingerSys (@HarbingerSys)
Slideshare: slideshare.net/hsplmkting
Facebook: facebook.com/harbingersys
LinkedIn: linkedin.com/company/382306
© Harbinger Systems | www.harbinger-systems.com

More Related Content

What's hot

ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines  ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines Dev Raj Gautam
 
AngularJS = Browser applications on steroids
AngularJS = Browser applications on steroidsAngularJS = Browser applications on steroids
AngularJS = Browser applications on steroidsMaurice De Beijer [MVP]
 
Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone jsMindfire Solutions
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!Gabriel Walt
 
Tests supporting multiple mobile platforms
Tests supporting multiple mobile platformsTests supporting multiple mobile platforms
Tests supporting multiple mobile platformsvodqancr
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorizedroialdaag
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCBarry Gervin
 
Asp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin SawantAsp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin SawantNitin Sawant
 
How to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkHow to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkRapidValue
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introductionBhagath Gopinath
 
Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component ResuseJustin Edelson
 
Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Noam Kfir
 

What's hot (20)

ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines  ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines
 
ASP .net MVC
ASP .net MVCASP .net MVC
ASP .net MVC
 
AngularJS = Browser applications on steroids
AngularJS = Browser applications on steroidsAngularJS = Browser applications on steroids
AngularJS = Browser applications on steroids
 
Creating MVC Application with backbone js
Creating MVC Application with backbone jsCreating MVC Application with backbone js
Creating MVC Application with backbone js
 
Week1 dq5
Week1 dq5Week1 dq5
Week1 dq5
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
Tests supporting multiple mobile platforms
Tests supporting multiple mobile platformsTests supporting multiple mobile platforms
Tests supporting multiple mobile platforms
 
Web applications
Web applicationsWeb applications
Web applications
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
 
CTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVCCTTDNUG ASP.NET MVC
CTTDNUG ASP.NET MVC
 
ASP.NET MVC for Begineers
ASP.NET MVC for BegineersASP.NET MVC for Begineers
ASP.NET MVC for Begineers
 
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
 
Asp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin SawantAsp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin Sawant
 
Mvc summary
Mvc summaryMvc summary
Mvc summary
 
How to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular FrameworkHow to Implement Micro Frontend Architecture using Angular Framework
How to Implement Micro Frontend Architecture using Angular Framework
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introduction
 
Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component Resuse
 
Mvc framework
Mvc frameworkMvc framework
Mvc framework
 
Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6
 

Viewers also liked

Understanding AngularJS HTML5 DataServices
Understanding AngularJS HTML5 DataServicesUnderstanding AngularJS HTML5 DataServices
Understanding AngularJS HTML5 DataServicesThomas Burleson
 

Viewers also liked (15)

iOS 8 HealthKit: Driving Smart Health Solutions
iOS 8 HealthKit: Driving Smart Health SolutionsiOS 8 HealthKit: Driving Smart Health Solutions
iOS 8 HealthKit: Driving Smart Health Solutions
 
Webinar: Structured attestation to meaningful use stage 2
Webinar: Structured attestation to meaningful use stage 2Webinar: Structured attestation to meaningful use stage 2
Webinar: Structured attestation to meaningful use stage 2
 
Webinar: How to choose your outsourcing partner for building mobile apps?
Webinar: How to choose your outsourcing partner for building mobile apps?Webinar: How to choose your outsourcing partner for building mobile apps?
Webinar: How to choose your outsourcing partner for building mobile apps?
 
Open Technology Solutions For Healthcare Startups
Open Technology Solutions For Healthcare StartupsOpen Technology Solutions For Healthcare Startups
Open Technology Solutions For Healthcare Startups
 
Webinar- Internet of Things: Application Frameworks in IoT
Webinar- Internet of Things: Application Frameworks in IoTWebinar- Internet of Things: Application Frameworks in IoT
Webinar- Internet of Things: Application Frameworks in IoT
 
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
Webinar IoT Cloud Platforms and Middleware for Rapid Application DevelopmentWebinar IoT Cloud Platforms and Middleware for Rapid Application Development
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
 
Webinar: UI/UX best practices in cms based web design
Webinar: UI/UX best practices in cms based web designWebinar: UI/UX best practices in cms based web design
Webinar: UI/UX best practices in cms based web design
 
Webinar: IoT in Healthcare - An Overview
Webinar: IoT in Healthcare - An OverviewWebinar: IoT in Healthcare - An Overview
Webinar: IoT in Healthcare - An Overview
 
Understanding AngularJS HTML5 DataServices
Understanding AngularJS HTML5 DataServicesUnderstanding AngularJS HTML5 DataServices
Understanding AngularJS HTML5 DataServices
 
Webinar: Building amazing web apps rapidly with emerging tech
Webinar: Building amazing web apps rapidly with emerging techWebinar: Building amazing web apps rapidly with emerging tech
Webinar: Building amazing web apps rapidly with emerging tech
 
Building next gen hr solutions with people analytics-final
Building next gen hr solutions with people analytics-finalBuilding next gen hr solutions with people analytics-final
Building next gen hr solutions with people analytics-final
 
Discover the Potential of your Data with Machine Learning
Discover the Potential of your Data with Machine LearningDiscover the Potential of your Data with Machine Learning
Discover the Potential of your Data with Machine Learning
 
Webinar presentation-startups and mobility
Webinar presentation-startups and mobilityWebinar presentation-startups and mobility
Webinar presentation-startups and mobility
 
Webinar: Automation of Test Automation
Webinar: Automation of Test AutomationWebinar: Automation of Test Automation
Webinar: Automation of Test Automation
 
Building real-time-collaborative-web-applications
Building real-time-collaborative-web-applicationsBuilding real-time-collaborative-web-applications
Building real-time-collaborative-web-applications
 

Similar to JavaScript MVC Frameworks: Backbone, Ember and Angular JS

Angular patterns
Angular patternsAngular patterns
Angular patternsPremkumar M
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
 
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...Ram G Athreya
 
Angular JS - Introduction
Angular JS - IntroductionAngular JS - Introduction
Angular JS - IntroductionSagar Acharya
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...Edureka!
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to conceptsAbhishek Sur
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Ganesh Kondal
 
Ember App Kit & The Ember Resolver
Ember App Kit & The Ember ResolverEmber App Kit & The Ember Resolver
Ember App Kit & The Ember Resolvertboyt
 
Comparative analysis of java script framework
Comparative analysis of java script frameworkComparative analysis of java script framework
Comparative analysis of java script frameworkNishant Kumar
 
Mvc presentation
Mvc presentationMvc presentation
Mvc presentationMaslowB
 

Similar to JavaScript MVC Frameworks: Backbone, Ember and Angular JS (20)

Angular patterns
Angular patternsAngular patterns
Angular patterns
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
 
Top 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web DevelopmentTop 10 Javascript Frameworks For Easy Web Development
Top 10 Javascript Frameworks For Easy Web Development
 
Angular js 1.3 basic tutorial
Angular js 1.3 basic tutorialAngular js 1.3 basic tutorial
Angular js 1.3 basic tutorial
 
MVC Framework
MVC FrameworkMVC Framework
MVC Framework
 
Angular JS - Introduction
Angular JS - IntroductionAngular JS - Introduction
Angular JS - Introduction
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...
What Is Angular 2 | Angular 2 Tutorial For Beginners | Angular Training | Edu...
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
Ember App Kit & The Ember Resolver
Ember App Kit & The Ember ResolverEmber App Kit & The Ember Resolver
Ember App Kit & The Ember Resolver
 
Laravel session 1
Laravel  session 1Laravel  session 1
Laravel session 1
 
Comparative analysis of java script framework
Comparative analysis of java script frameworkComparative analysis of java script framework
Comparative analysis of java script framework
 
Mvc presentation
Mvc presentationMvc presentation
Mvc presentation
 
Angularjs basic part01
Angularjs basic part01Angularjs basic part01
Angularjs basic part01
 

More from Harbinger Systems - HRTech Builder of Choice

More from Harbinger Systems - HRTech Builder of Choice (20)

Using People Analytics for a Sustainable Remote Workforce
Using People Analytics for a Sustainable Remote WorkforceUsing People Analytics for a Sustainable Remote Workforce
Using People Analytics for a Sustainable Remote Workforce
 
5 Trends That Will Drive the Transformation of EdTech in 2021
5 Trends That Will Drive the Transformation of EdTech in 20215 Trends That Will Drive the Transformation of EdTech in 2021
5 Trends That Will Drive the Transformation of EdTech in 2021
 
Rapidly Transforming Organizational Content into Learning Experiences
Rapidly Transforming Organizational Content into Learning ExperiencesRapidly Transforming Organizational Content into Learning Experiences
Rapidly Transforming Organizational Content into Learning Experiences
 
Scalable HR Integrations for Better Data Analytics: Challenges & Solutions
Scalable HR Integrations for Better Data Analytics: Challenges & SolutionsScalable HR Integrations for Better Data Analytics: Challenges & Solutions
Scalable HR Integrations for Better Data Analytics: Challenges & Solutions
 
5 Key Items HR Should Consider Before Buying HR Technologies
5 Key Items HR Should Consider Before Buying HR Technologies5 Key Items HR Should Consider Before Buying HR Technologies
5 Key Items HR Should Consider Before Buying HR Technologies
 
Best Practices to Build Marketplace-Ready Integrations
Best Practices to Build Marketplace-Ready IntegrationsBest Practices to Build Marketplace-Ready Integrations
Best Practices to Build Marketplace-Ready Integrations
 
HRTech Integration Masterclass Session 4 How to Expand Your Recruitment Datab...
HRTech Integration Masterclass Session 4 How to Expand Your Recruitment Datab...HRTech Integration Masterclass Session 4 How to Expand Your Recruitment Datab...
HRTech Integration Masterclass Session 4 How to Expand Your Recruitment Datab...
 
Recalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
Recalibrating Product Strategy - Addressing Demand Shifts in Existing MarketsRecalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
Recalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
 
How to Gain Key Insights from Data Distributed Across Multiple HR Systems
How to Gain Key Insights from Data Distributed Across Multiple HR SystemsHow to Gain Key Insights from Data Distributed Across Multiple HR Systems
How to Gain Key Insights from Data Distributed Across Multiple HR Systems
 
HRTech Integration Master Class Session 1 -Delivering Seamless Learning Exper...
HRTech Integration Master Class Session 1 -Delivering Seamless Learning Exper...HRTech Integration Master Class Session 1 -Delivering Seamless Learning Exper...
HRTech Integration Master Class Session 1 -Delivering Seamless Learning Exper...
 
Recalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
Recalibrating Product Strategy - Addressing Demand Shifts in Existing MarketsRecalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
Recalibrating Product Strategy - Addressing Demand Shifts in Existing Markets
 
Integrating System of Records and Collaboration Tools
Integrating System of Records and Collaboration ToolsIntegrating System of Records and Collaboration Tools
Integrating System of Records and Collaboration Tools
 
How to Power Your HR Apps With AI And Make It Explainable
How to Power Your HR Apps With AI And Make It ExplainableHow to Power Your HR Apps With AI And Make It Explainable
How to Power Your HR Apps With AI And Make It Explainable
 
Chatbot for Continuous Performance Management
Chatbot for Continuous Performance Management Chatbot for Continuous Performance Management
Chatbot for Continuous Performance Management
 
Leveraging mobile capabilities in your HR application
Leveraging mobile capabilities in your HR applicationLeveraging mobile capabilities in your HR application
Leveraging mobile capabilities in your HR application
 
Automate HR applications using AI and ML
Automate HR applications using AI and MLAutomate HR applications using AI and ML
Automate HR applications using AI and ML
 
Engage for Success: Improve Workforce Engagement with Open Communication and ...
Engage for Success: Improve Workforce Engagement with Open Communication and ...Engage for Success: Improve Workforce Engagement with Open Communication and ...
Engage for Success: Improve Workforce Engagement with Open Communication and ...
 
A Cloud-based Collaborative Learning and Coaching Platform
A Cloud-based Collaborative Learning and Coaching PlatformA Cloud-based Collaborative Learning and Coaching Platform
A Cloud-based Collaborative Learning and Coaching Platform
 
Extending LRSs and the xAPI for Event-driven Blended and Adaptive Learning
Extending LRSs and the xAPI for Event-driven Blended and Adaptive LearningExtending LRSs and the xAPI for Event-driven Blended and Adaptive Learning
Extending LRSs and the xAPI for Event-driven Blended and Adaptive Learning
 
Impact of SMAC Technology in HCM
Impact of SMAC Technology in HCMImpact of SMAC Technology in HCM
Impact of SMAC Technology in HCM
 

Recently uploaded

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

JavaScript MVC Frameworks: Backbone, Ember and Angular JS

  • 1. Webinar Javascript MVC Frameworks- Backbone, Ember and Angular Js The Paradigm Shift and The Impact on Application Development
  • 2. Panelists Mahesh Kumar Kharade Associate Architect Harbinger Systems Meera Navale Software Engineer Harbinger Systems © Harbinger Systems | www.harbinger-systems.com
  • 3. Agenda • Overview – Web Application UI – Single Page Applications [SPA] • JavaScript Ecosystem • JavaScript [JS] MVC – Features – Architecture – Key Components • Key JS MVC Frameworks – Backbone JS – Angular JS – Ember JS • Choosing the Framework • Case Study © Harbinger Systems | www.harbinger-systems.com
  • 4. Overview: Web Application UI • Not just Basic HTML views like – Grids – Lists – Charts • More real-time components like – Online User Counters – Real-time Feeds – Overall number of components on webpage – Web views becoming Web Applications • Role of REST APIs © Harbinger Systems | www.harbinger-systems.com • Client side processing • Mobile Support • HTML5 – Local Storage – pushState • JS templating engines – Mustache.js – Twig.js
  • 5. What is SPA? • Single Page Application is a web app in which the majority of interactions are handled on the client without the need to reach a server, with a goal of providing a more fluid user experience © Harbinger Systems | www.harbinger-systems.com
  • 6. SPA: Driving Factor for JS Frameworks • It is an application so it can do Cool Stuff! • Responsive, native application feel. No page flicker! • Faster UI, More Interactive • Most of the page processing happens client side, offloading server load • Massive tooling support, Vibrant community • Code reuse, REST endpoints are general purpose and can be used for multiple applications • UI is just another Client • Perfect for supporting multiple platforms © Harbinger Systems | www.harbinger-systems.com
  • 7. Business Usage • Create “App-like user experience” • Bind to your own (or 3rd party) RESTful API • Build hybrid (native) HTML5 applications • Mobile version of your website © Harbinger Systems | www.harbinger-systems.com The SPA sweet spot is likely not on web sites, but on content-rich cross-platform mobile apps
  • 8. MVC JavaScript • Front end developers know JavaScript • Better organization to front end applications • Abstract complexity • Good integration with JavaScript frameworks • An easier way to do tests © Harbinger Systems | www.harbinger-systems.com
  • 9. JavaScript Ecosystem © Harbinger Systems | www.harbinger-systems.com JavaScript MVC Framework ( EmberJS, JavaScriptMVC, Backbone.js, … ) JavaScript Frameworks ( jQuery, MooTools, YUI Library, Dojo Toolkit,…) Template Frameworks ( Mustache, JAML, Eco, ICanHaz.js, JQote 2, … ) Testing Frameworks (QUnit, Jasmine SinonJS, … ) Dynamic Stylesheet Language ( SASS, LESS ) Mobile Frameworks ( PhoneGap, Zepto, … ) Minification Frameworks ( YUI compressor JSMIN, … )
  • 10. Building Blocks of JS MVC © Harbinger Systems | www.harbinger-systems.com Source: http://www.slideshare.net/SC5/building-single-page-applications-16543203
  • 11. MVC Architecture © Harbinger Systems | www.harbinger-systems.com view controller Model Client side Server side web services DOM back end
  • 12. Top JS MVC Frameworks © Harbinger Systems | www.harbinger-systems.com
  • 13. • A lightweight MVC framework • Born in 2010 • Popular as a lean alternative to heavy, full- featured MVC frameworks such as ExtJS © Harbinger Systems | www.harbinger-systems.com
  • 14. Backbone JS : Main concepts • Model • Collection • View • Template • Router • History • Events © Harbinger Systems | www.harbinger-systems.com
  • 15. MVC: Backbone © Harbinger Systems | www.harbinger-systems.com Source: http://www.jboss.org/jdf/examples/ticket-monster/tutorial/UserFrontEnd/
  • 16. •Open-source JavaScript framework •Developed in 2009 •Maintained by Google •Actively developed and supported © Harbinger Systems | www.harbinger-systems.com
  • 17. Key Features of AngularJS • Declarative HTML approach • Easy Data Binding: Two way Data Binding • Reusable Components • MVC/Model View View Model (MVVM)Design Pattern • Dependency Injection • End to end Integration Testing / Unit Testing • Routing • Templating © Harbinger Systems | www.harbinger-systems.com
  • 18. HTML Compiler • Angular's HTML compiler allows the developer to – Teach the browser new HTML syntax – Attach behaviour to any HTML element or attribute and even create new HTML elements or attributes with custom behavior – Angular calls these behaviour extensions directives • Compiler is an angular service which traverses the DOM looking for attributes. The compilation process happens in two phases. – Compile: traverse the DOM and collect all of the directives. The result is a linking function. – Link: combine the directives with a scope and produce a live view. Any changes in the scope model are reflected in the view, and any user interactions with the view are reflected in the scope model. This makes the scope model the single source of truth. © Harbinger Systems | www.harbinger-systems.com
  • 19. MVVM: AngularJS Way © Harbinger Systems | www.harbinger-systems.com VIEW • User Interface • Reusable Components • UI Logic • Observers & Notify View Model CONTROLLER • Maintain state • Define Application Behavior • Maps user actions to Model VIEW MODEL • Presentation Logic • State • Observe Mutations • Notify View Data Processing Data Binding Commands Notifications Events User Interactions Other Key Components of an Angular Application Dependency Injection | Directives | Filters | Templates
  • 20. © Harbinger Systems | www.harbinger-systems.com •Open-source client-side JavaScript web application framework •Developed in 2011
  • 21. Ember JS • Borrowed ideas pioneered by native application frameworks like Cocoa and Smalltalk • Small choices are made for you, just like Rails • Convention over configuration • Dependencies – jQuery – Handlebars.js – Template Language © Harbinger Systems | www.harbinger-systems.com “It is more important to reduce the effort of maintenance than it is to reduce the effort of implementation” Max Kanat-Alexander, Code Simplicity Ember in the Wild discourse.org | zendesk.com | livingsocial.com | groupon.com | sqaureup.com | Yapp.us
  • 22. Core Concepts • Templates • Routers • Components • Models • Routes • Views © Harbinger Systems | www.harbinger-systems.com
  • 23. Comparative analysis: AngularJS • The Good – Has brought many innovative concepts to the world of web developers – Two-way data binding saves a lot of boilerplate code – The largest community and much more online content – Better modularity achieved – Easy to create reusable components and extending HTML by defining new elements, attributes and behaviors – A lot of emphasis on separation of concerns, unit isolation and provides ready-to-use, powerful mocks for fundamental built-in services © Harbinger Systems | www.harbinger-systems.com
  • 24. Comparative analysis: AngularJS • Pain Points – The complexity of the Directives API – Use of templates, reduces testability – Coding errors/typos hard to locate – A lot of interactive elements, Angular becomes really slow © Harbinger Systems | www.harbinger-systems.com
  • 25. Comparative analysis: BackboneJS • The Good – Lightweight, fast and has a small memory footprint – Learning curve is very linear – Great documentation – API very stable • Pain Points – Does not provide structure – Memory management have to be carefully considered – Lacks support for two-way data binding – Hard to unit-test, more fragile and less reusable © Harbinger Systems | www.harbinger-systems.com
  • 26. Comparative analysis: EmberJS • The Good – Automatically infer much of the configuration itself – an excellent router and an optional data layer that integrates really nicely with backend like RoR or any other RESTful JSON API – Better Performance: application loads and runs fast • Pain Points – API changed much before it stabilized, there is a lot of outdated content and examples that no longer work © Harbinger Systems | www.harbinger-systems.com
  • 27. Choosing Framework • Features – JavaScript MVC Frameworks are a set of common features – main features of a JavaScript MVC Framework • Two-way Binding between HTML and a client-side JavaScript object model • View Templates • Data Storage (local or through a web server to a database) • URL Routing (keeping the back button working and search engines happy) © Harbinger Systems | www.harbinger-systems.com
  • 28. Choosing Framework • Maturity – How many real-world production apps are using these frameworks and how many users do these apps have? – How good is the documentation and how many examples/tutorials are available? – Are the examples up to date? – How stable is the API? – Do other developers know or are they getting to know this technology? © Harbinger Systems | www.harbinger-systems.com
  • 29. Choosing Framework • Size © Harbinger Systems | www.harbinger-systems.com 39.5 6.5 90 0 20 40 60 80 100 Angular JS Backbone JS ember.js Size (kb) Size
  • 30. Choosing Framework • Dependencies © Harbinger Systems | www.harbinger-systems.com 39.5 50 ( jQuery + Underscore) 136.2 (jQuery + Handlebars) 0 20 40 60 80 100 120 140 160 Angular JS Backbone JS ember.js Size (kb) Size
  • 31. Choosing Framework • Community © Harbinger Systems | www.harbinger-systems.com Metric AngularJS Backbone.js Ember.js Stars on Github 27.2k 18.8k 11k Third-Party Modules 800 ngmodules 236 backplugs 21 emberaddons StackOverflow Questions 49.5k 15.9k 11.2k YouTube Results ~75k ~16k ~6k GitHub Contributors 928 230 393 Chrome Extension Users 150k 7k 38.3k Source: https://www.airpair.com/js/javascript-framework-comparison
  • 32. DEMO screens © Harbinger Systems | www.harbinger-systems.com
  • 33. DEMO screens © Harbinger Systems | www.harbinger-systems.com
  • 34. Q&A © Harbinger Systems | www.harbinger-systems.com
  • 35. Thank You! Visit us at: www.harbinger-systems.com Write to us at: hsplinfo@harbingergroup.com Blog: blog.harbinger-systems.com Twitter: twitter.com/HarbingerSys (@HarbingerSys) Slideshare: slideshare.net/hsplmkting Facebook: facebook.com/harbingersys LinkedIn: linkedin.com/company/382306 © Harbinger Systems | www.harbinger-systems.com

Editor's Notes

  1. “App-like user experience” Touch navigation Instant response to your clicks Fluid transitions between pages Cached & pre-fetched content Binding to your own (or 3rd party) RESTful API Ease of populating models Replacement for Flash or Java in your web pages e.g. FlipBoard, LinkedIn iPad Hybrid (native) HTML5 applications e.g. FlipBoard, LinkedIn iPad Apache Cordova, Embedded WebViews, Tizen, Windows 8 Mobile version of your web site m.veikkaus.fi, plus.hbl.fi, app.ft.com
  2. XMLHTTPRequestHTML and all the assets are loaded in first request Additional data is fetched over In addition to normal server stack, you need to have API endpoints in the same level as presentation layer If you want to go real-time, WebSockets (socket.io) can help you When it gets slow, cluster the backend behind a caching reverse proxy like Varnish
  3. Backbone.js operates with following objects * Model contains data and provides business logic used in the application. * Collection is a set of models that can be processed in the loop and supports sorting and filtering. * View renders model or collection and interacts with the user. * Templates are used for separation HTML from JavaSript in the View. By default Undescore template engine is used, but it can be replaced with Twig, which is used in Drupal 8 or Mustache. * Router is similar to hook_menu. It allows to define a path and provide callbacks. * History is global object, which contains router that is currently in use. * Backbone objects such as Models, Collections, Views and Router implements Events object, they can provide own events and listen to events from other objects.
  4. There are some differences in Backbone architecture and traditional MVC pattern. At the left there is a MVC structure . Here we see, that the Model updates the View seen by the user. User can perform actions which are handled by the Controller. Controller manipulates model data and can trigger business logic methods. Also Models is synchronized with a storage. At the right you can see Backbone.js structure. The main difference is that some of the controller functionality is implemented by the View, while other by the router. Typically view can listen model events and update DOM. View also listens to user events and updates model accordingly. Model is synchronized with a server using REST approach. Read ops are typically controlled by the Router, while write ops by the View.
  5. Controllers Contains the code behind the view Try to keep lightweight Controllers do not need to directly manipulate the view contain only the business logic needed for a single view
  6. discourse.org zendesk.com livingsocial.com groupon.com sqaureup.com Yapp.us
  7. A template, written in the Handlebars templating language, describes the user interface of your application. Each template is backed by a model, and the template automatically updates itself if the model changes. HTML + embeded expression The router translates a URL into a series of nested templates, each backed by a model. As the templates or models being shown to the user change, Ember automatically keeps the URL in the browser's address bar up-to-date. (Manage the state of application) at any point, users are able to share the URL of your app A component is a custom HTML tag whose behavior you implement using JavaScript and whose appearance you describe using Handlebars templates. They allow you to create reusable controls that can simplify your application's templates. A model is an object that stores persistent state. Templates are responsible for displaying the model to the user by turning it into HTML. A route is an object that tells the template which model it should display. If you don't specify the controller (app/controllers/post.js), Ember will automatically make one for you based on the return value of the route's model hook. If the model is an Array, you get an ArrayController. Otherwise, you get an ObjectController. By default creates index route Encapsulates templates, combines templates with data and responds to user initiated events