+ All Categories
Transcript
Page 1: Single Page Applications With Backbone

Single page applications with backbone.js

Cork ALT.NET March 2014

Page 2: Single Page Applications With Backbone

LEAD Architect

@SUGRUE www.jamessugrue.ie

AUthor of Beginning Backbone.js

Published Dec 2013

SIDE PROJECT

www.donatecode.com

Page 3: Single Page Applications With Backbone

THE HISTORY !

CHARACTERISTICS OF A SINGLE PAGE APPLICATION !

ADVANTAGES AND PITFALLS !

BACKBONE.JS AND OTHER JS LIBRARIES !

SINGLE PAGE APPLICATIONS and .NET

SINGLE PAGE APPLICATIONS

Page 4: Single Page Applications With Backbone

HISTORY

Page 5: Single Page Applications With Backbone

2005

Page 6: Single Page Applications With Backbone

2006

Page 7: Single Page Applications With Backbone

THE WILDERNESS YEARS

2006 -2010

Page 8: Single Page Applications With Backbone

2010++

https://xkcd.com/927/

Page 9: Single Page Applications With Backbone

CHARACTERISTICS

Page 10: Single Page Applications With Backbone

Makes websites more APP-lIKE LESS WAITING ALL RESOURCES LOADED AT THE START !

PAGE NEVER RELOADS !

BOOKMARKABLE SECTIONS !

CHARACTERISTICS

Page 11: Single Page Applications With Backbone

MODEL VIEW * REQUIRED

REDRAW UI WITHOUT SERVER ROUND-TRIP !

Server

Views

View 1

View 2

Model

Model 1

Model 2

Client

Page 12: Single Page Applications With Backbone

TWITTER

Page 13: Single Page Applications With Backbone

WHAT DOES THE SERVER DO?

BECOMES A PURE DATA API or a WEB SERVICE

THIN SERVER

HANDLES SECURE or SENSITIVE CODE

Page 14: Single Page Applications With Backbone

WHAT DOES THE SERVER DO?

THICK STATEFUL SERVER

Server RENDERS HTML and Executes LOGIC RECORDS STATE AND UPDATES CLIENT

Page 15: Single Page Applications With Backbone

ADVANTAGES PITFALLS

Page 16: Single Page Applications With Backbone

EMBRACE THE ADVANTAGES

NATURAL USER FLOW

PARALLEL DEVELOPMENT

EXPERIENCE on MOBILE DEVICES

STATE HANDLED ON CLIENT

OFFLINE EXPERIENCE POSSIBLE

Page 17: Single Page Applications With Backbone

BEWARE OF PITFALLS

SEARCH ENGINE OPTIMISATION

JAVASCRIPT MUST BE ENABLED

LOADING TIME

JAVASCRIPT MEMORY LEAKS

Page 18: Single Page Applications With Backbone

USE THE SERVER LUKE

RENDER FIRST PAGE ON THE SERVER

INITIAL LOAD TIME ISSUE

POPULATE INITIAL MODELS

Page 19: Single Page Applications With Backbone

BACKBONE.JS AND OTHER LIBRARIES

Page 20: Single Page Applications With Backbone
Page 21: Single Page Applications With Backbone

HELPS STRUCTURE CODEMODEL VIEW CONTROLLER

LIGHTWEIGHT6.4KB

MATURE2010

UNOPINIONATED

Page 22: Single Page Applications With Backbone

DEPENDS ON

OPTIONAL

Page 23: Single Page Applications With Backbone

REpRESENts A SINGLE DATA OBJECT !

CONNECTS TO SERVER URL TO POPULATE / PERSIST !

WHEN DATA CHANGES, EVENTS FIRE

BACKBONE MODEL

Page 24: Single Page Applications With Backbone

BACKBONE MODEL

Tweet = Backbone.Model.extend({ });

Page 25: Single Page Applications With Backbone

BACKBONE MODEL: BASICS

DEFAULT VARIABLES

CONSTRUCTOR

BUILT-IN FUNCTIONS

YOUR OWN FUNCTIONS

Page 26: Single Page Applications With Backbone

BACKBONE MODEL: USAGE

Page 27: Single Page Applications With Backbone

BACKBONE MODEL: CHANGE EVENTS

Page 28: Single Page Applications With Backbone

BACKBONE COLLECTIONBULK OPERATIONS ON MODELS !

CONNECTS TO SERVER URL TO POPULATE / PERSIST !

WHEN DATA CHANGES, EVENTS FIRE !

LOTS OF QUERY and FILTER FUNCTIONS

Page 29: Single Page Applications With Backbone

BACKBONE COLLECTION

Timeline = Backbone.Collection.extend({ });

Page 30: Single Page Applications With Backbone

BACKBONE COLLECTION: BASICS

MODEL

CONSTRUCTOR

URL

Page 31: Single Page Applications With Backbone

BACKBONE VIEWCHANGES THE DOM !

CAN HANDLE DOM EVENTS !

SUBSCRIBE TO CHANGE EVENTS IN THE DATA LAYER !

USE TEMPLATE FOR EFFICIENT RENDERING

Page 32: Single Page Applications With Backbone

BACKBONE VIEW: THE DOM

Page 33: Single Page Applications With Backbone

BACKBONE VIEW: THE TEMPLATE

Page 34: Single Page Applications With Backbone

BACKBONE VIEW

TimelineView = Backbone.View.extend({ });

Page 35: Single Page Applications With Backbone

BACKBONE VIEW: BASICSDOM ELEMENT

TEMPLATE

DOM EVENT HANDLING

RETRIEVE THE COLLECTION

Page 36: Single Page Applications With Backbone

BACKBONE VIEW: RENDERING

APPEND TO DOM

Page 37: Single Page Applications With Backbone

BACKBONE ROUTER

HANDLES APPLICATION STATE !

PROVIDES BOOKMARKABLE STATE !

SUBSCRIBE TO CHANGE EVENTS IN THE DATA LAYER

[CONTROLLER]

Page 38: Single Page Applications With Backbone

BACKBONE ROUTER CONTROLLER

AppRouter = Backbone.Router.extend({ });

Page 39: Single Page Applications With Backbone

BACKBONE ROUTER: BASICSROUTES

EVENTS

HANDLERS

Page 40: Single Page Applications With Backbone

DOM

Model Collection

ROUTER

VIEW

Page 41: Single Page Applications With Backbone

UNOPINIONATED ===

CONTROL

Page 42: Single Page Applications With Backbone

ECO SYSTEM

Page 43: Single Page Applications With Backbone

MATURITY

Page 44: Single Page Applications With Backbone

TOOLING

Page 45: Single Page Applications With Backbone

.NET

Page 46: Single Page Applications With Backbone

http://www.asp.net/single-page-application/overview/introduction

TEMPLATES FOR THE MOST POPULAR

Page 47: Single Page Applications With Backbone

@SUGRUE www.jamessugrue.ie

AVAILABLE ON AMAZON

WIN IT NOW!

JOIN UP AT

www.donatecode.com

HIRING JAVASCRIPT / MOBILE DEVELOPERS


Top Related