SlideShare a Scribd company logo
1 of 18
Oscar Gensollen Arroyo
Arquitecto de Software
Consultor Senior
www.formativa.com.pe
oscar.gensollen@formativa.com.pe
@oscargensollen
 ¿Qué es Backbone.js?
 Cuando usarlo
 Definición de modelos: atributos, eventos
 Definición de vistas: instanciación, renderización
 Uso de plantillas
 Manejo de colecciones
 Es una librería basad en JavaScript que permite ordenar mejor el código del lado
cliente
 Backbone no es:
 Un framework
 MVC
 Proporciona
 Modelos, con capacidad para binding y manejo de eventos
 Colecciones, con una API muy completa
 Vistas, con manejo de eventos
 Se conecta al servidor mediante una interface REST
 Para aplicaciones con interfaces complejas
 SPAs (Single Page Applications)
 Gmail, Facebook, Twitter
 Ventajas:
 Rápido (experiencia aplicación de escritorio)
 Muy interactivo.
 Escalable.
 Retos:
 Indexación en motores de búsqueda.
 Testing.
 Seguridad.
 Lado Cliente:
 Router(s)
 View(s)
 Model(s)
 Collection(s)
 Lado Servidor:
 Endpoints RESTful
JSON
View
Model
Collection
Router
DOM
Events
 Underscore.js
 jQuery
1. Lo descargamos desde http://backbonejs.org/
2. Referenciar las dependencias y la librería de Backbone
3. Se pueden hacer pruebas sencillas con entorno como jsFiddle (entorno
preconfigurado http://jsfiddle.net/ynkJE/)
 Un modelo representa a una entidad sobre la cual queremos almacenar datos.
 Es el núcleo de nuestra aplicación.
 Manejan estado por medio de atributos.
 También pueden manejar lógica o comportamiento.
 Se comunican por medio de eventos
 Tienen un ciclo de vida: se crean, se guarda estado, se validan, se sincronizan, se
destruyen…
 Directamente
var Auto – new Backbone.Model();
 Definiendo un tipo personalizado:
var Auto = Backbone.Model.extend({
propiedades de instancia
},
{
propiedades de clase
}
);
 Creando la instancia del modelo:
var auto1 = new Backbone.Model({
marca: „Toyota‟,
año: 2012
});
 Un modelo puede provocar un evento cuando su estado cambia.
 Hay que suscribirse al evento ‘change’ del modelo o de una propiedad específica:
auto1.on(“change”,function () {});
auto1.on(“change:marca, function () {});
 Se pueden definir eventos personalizados
 Las vistas permiten organizar de manera lógica el contenido a mostrar.
 Estan soportadas por modelos.
 Manejan los eventos de los modelos y del DOM.
 Una vista se define usando Backbone.View:
var vistaPrincipal = Backbone.View.extend({
// propiedades
});
 Una vista tiene un elemento del DOM asociado, denominado ‘el’
var vistaPrincipal = Backbone.View.extend({
tagName: „tr‟,
id: „detalle‟,
className: „fila‟,
attributes: {
„modelo‟: „corolla‟
}
});
 La instanciación se hace igual que los modelos:
var vista1 = new vistaPrincipal();
 Es común aprovechar la instanciación de una vista para pasarle el modelo:
var principal = new VistaPrincipal({
model: auto1
});
 También se pueden pasar otras propiedades como TagName, id, el, className, etc
 Las vistas tienen una función denominada ‘Render’ que controla su pintado en el
DOM:
var vista1 = Backbone.View.extend({
render: function() {
this.$el.html(„contenido personalizado‟);
return this;
}
});
<script id=“posicion-template” type=“text/html”>
<p>Latitud: <%= latitud %></p>
<Longitud: <%= longitud %></p>
</script>
…
var data = { latitud: -30, longitud: 120 };
var plantilla = $(„#posicion-template‟).html();
this.$el.html(_.template(plantilla,data);
 Una colección es un contenedor de modelos de un mismo tipo.
 Se comporta como un array.
 Interactúa con el servidor para recuperación y almacenamiento.

More Related Content

What's hot

Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
Esteban Ariza
 
Modelo, vista, controlador
Modelo, vista, controladorModelo, vista, controlador
Modelo, vista, controlador
Cecy Villalta
 

What's hot (20)

Curso AngularJS - 6. formularios
Curso AngularJS - 6. formulariosCurso AngularJS - 6. formularios
Curso AngularJS - 6. formularios
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJS
 
Vaadin 8 en BBR Spa
Vaadin 8 en BBR SpaVaadin 8 en BBR Spa
Vaadin 8 en BBR Spa
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Angularjs
AngularjsAngularjs
Angularjs
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Java server faces
Java server facesJava server faces
Java server faces
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Curso JSF - Conceptos Basicos
Curso JSF - Conceptos BasicosCurso JSF - Conceptos Basicos
Curso JSF - Conceptos Basicos
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Modelo mvc
Modelo mvcModelo mvc
Modelo mvc
 
Exposicion JSF
Exposicion JSFExposicion JSF
Exposicion JSF
 
Curso JAVA DESARROLLO DE APLICACIONES CON JSF.
Curso JAVA DESARROLLO DE APLICACIONES CON JSF.Curso JAVA DESARROLLO DE APLICACIONES CON JSF.
Curso JAVA DESARROLLO DE APLICACIONES CON JSF.
 
Angular js
Angular jsAngular js
Angular js
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
J2 ee
J2 eeJ2 ee
J2 ee
 
El patrón MVC
El patrón MVCEl patrón MVC
El patrón MVC
 
Clase 19 programación en base a patrones
Clase 19 programación en base a patronesClase 19 programación en base a patrones
Clase 19 programación en base a patrones
 
Modelo, vista, controlador
Modelo, vista, controladorModelo, vista, controlador
Modelo, vista, controlador
 
ASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datosASP.NET MVC - validacion de datos
ASP.NET MVC - validacion de datos
 

Similar to Introducción a Backbone

FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
kaolong
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
Laura Palma
 

Similar to Introducción a Backbone (20)

Esencia de Web Components
Esencia de Web ComponentsEsencia de Web Components
Esencia de Web Components
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web components
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patron mvc struts
Patron mvc strutsPatron mvc struts
Patron mvc struts
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Documentacion struts2
Documentacion struts2Documentacion struts2
Documentacion struts2
 
Grails: Framework para el desarrollo de aplicaciones Web No 2
Grails: Framework para el desarrollo de aplicaciones Web No 2Grails: Framework para el desarrollo de aplicaciones Web No 2
Grails: Framework para el desarrollo de aplicaciones Web No 2
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
 
Aplicaciones en capas1
Aplicaciones en capas1Aplicaciones en capas1
Aplicaciones en capas1
 
MVC
MVCMVC
MVC
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Introducción a Backbone

  • 1. Oscar Gensollen Arroyo Arquitecto de Software Consultor Senior www.formativa.com.pe oscar.gensollen@formativa.com.pe @oscargensollen
  • 2.  ¿Qué es Backbone.js?  Cuando usarlo  Definición de modelos: atributos, eventos  Definición de vistas: instanciación, renderización  Uso de plantillas  Manejo de colecciones
  • 3.  Es una librería basad en JavaScript que permite ordenar mejor el código del lado cliente  Backbone no es:  Un framework  MVC  Proporciona  Modelos, con capacidad para binding y manejo de eventos  Colecciones, con una API muy completa  Vistas, con manejo de eventos  Se conecta al servidor mediante una interface REST
  • 4.  Para aplicaciones con interfaces complejas  SPAs (Single Page Applications)  Gmail, Facebook, Twitter  Ventajas:  Rápido (experiencia aplicación de escritorio)  Muy interactivo.  Escalable.  Retos:  Indexación en motores de búsqueda.  Testing.  Seguridad.
  • 5.  Lado Cliente:  Router(s)  View(s)  Model(s)  Collection(s)  Lado Servidor:  Endpoints RESTful JSON
  • 8. 1. Lo descargamos desde http://backbonejs.org/ 2. Referenciar las dependencias y la librería de Backbone 3. Se pueden hacer pruebas sencillas con entorno como jsFiddle (entorno preconfigurado http://jsfiddle.net/ynkJE/)
  • 9.  Un modelo representa a una entidad sobre la cual queremos almacenar datos.  Es el núcleo de nuestra aplicación.  Manejan estado por medio de atributos.  También pueden manejar lógica o comportamiento.  Se comunican por medio de eventos  Tienen un ciclo de vida: se crean, se guarda estado, se validan, se sincronizan, se destruyen…
  • 10.  Directamente var Auto – new Backbone.Model();  Definiendo un tipo personalizado: var Auto = Backbone.Model.extend({ propiedades de instancia }, { propiedades de clase } );
  • 11.  Creando la instancia del modelo: var auto1 = new Backbone.Model({ marca: „Toyota‟, año: 2012 });
  • 12.  Un modelo puede provocar un evento cuando su estado cambia.  Hay que suscribirse al evento ‘change’ del modelo o de una propiedad específica: auto1.on(“change”,function () {}); auto1.on(“change:marca, function () {});  Se pueden definir eventos personalizados
  • 13.  Las vistas permiten organizar de manera lógica el contenido a mostrar.  Estan soportadas por modelos.  Manejan los eventos de los modelos y del DOM.  Una vista se define usando Backbone.View: var vistaPrincipal = Backbone.View.extend({ // propiedades });  Una vista tiene un elemento del DOM asociado, denominado ‘el’
  • 14. var vistaPrincipal = Backbone.View.extend({ tagName: „tr‟, id: „detalle‟, className: „fila‟, attributes: { „modelo‟: „corolla‟ } });  La instanciación se hace igual que los modelos: var vista1 = new vistaPrincipal();
  • 15.  Es común aprovechar la instanciación de una vista para pasarle el modelo: var principal = new VistaPrincipal({ model: auto1 });  También se pueden pasar otras propiedades como TagName, id, el, className, etc
  • 16.  Las vistas tienen una función denominada ‘Render’ que controla su pintado en el DOM: var vista1 = Backbone.View.extend({ render: function() { this.$el.html(„contenido personalizado‟); return this; } });
  • 17. <script id=“posicion-template” type=“text/html”> <p>Latitud: <%= latitud %></p> <Longitud: <%= longitud %></p> </script> … var data = { latitud: -30, longitud: 120 }; var plantilla = $(„#posicion-template‟).html(); this.$el.html(_.template(plantilla,data);
  • 18.  Una colección es un contenedor de modelos de un mismo tipo.  Se comporta como un array.  Interactúa con el servidor para recuperación y almacenamiento.

Editor's Notes

  1. Demo 0:Mostrarinteracción con Trello
  2. Demo 1: creando un modelodirectamente y usando extendDemo 1: propiedades de instancia versus propiedades de claseDemo 2: usando initializeDemo 4: usando ‘set’ y ‘get’
  3. Demo 5: suscribirse al evento change de un modeloDemo 6: mostrarcomocrear un eventopersonalizado (mod 2, minuto 7)
  4. Demo 7: crearuna vista quecree un elementDemo 8: crearuna vista que se mapee a un elementoexistente (mod 3 minute 3)
  5. Demo 9: instanciaruna vista y pasarle un modelo
  6. Demo 10: uso de view con model y eventos, se crea un temporizadorquemuestra la hora actual, segundo a segundo
  7. Demo 11: uso de template (mod 4 minuto 2:38)
  8. Demo 12: crearunacolección