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

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

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