SlideShare uma empresa Scribd logo
1 de 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.

Mais conteúdo relacionado

Mais procurados (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
 

Semelhante a Introducción a Backbone

Esencia de Web Components
Esencia de Web ComponentsEsencia de Web Components
Esencia de Web ComponentsPedro J. Molina
 
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 FulgueraJavier Oliver Fulguera
 
Esencia de web components
Esencia de web componentsEsencia de web components
Esencia de web componentsPedro J. Molina
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacionkaolong
 
[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)Eudris Cabrera
 
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/2012Damian Serrano Thode
 
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 .netAntonio Palomares Sender
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)Senior Dev
 
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 generationSergi Almar i Graupera
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ijjegonzalezf
 
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 2Esteban Saavedra
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palmaLaura Palma
 
Aplicaciones en capas1
Aplicaciones en capas1Aplicaciones en capas1
Aplicaciones en capas1mariana
 

Semelhante a 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
 

Último

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
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...JohnRamos830530
 
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 ASPECTOSpptxJorgeParada26
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
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.pptxAlan779941
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
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 estossgonzalezp1
 
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.FlorenciaCattelani
 
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 eyvanamcerpam
 

Último (11)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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...
 
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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
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
 
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.
 
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
 

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.

Notas do Editor

  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