BackBone JS Una introducción.

Slides:



Advertisements
Presentaciones similares
Introducción a jQuery Formación interna
Advertisements

Introducción a la programación (Clase 2)
Mónica Acosta Yeison Ceballos Carlos Rodallega
I. Sesión 2 Noviembre 2010 Claudio Chaucca Umana
Internet y tecnologías web
Conceptos fundamentales de ASP.NET
Curso de java básico (scjp)
Beneficios Migración. Doors 4.0 Embedded Business Logic (EBL). Form Código VBScript Contexto de ejecución EBL Es la denominación con la que se incorpora.
Front-end y Back-end Definición en diseño de software.
Scripting en el lado del Cliente
Crear un formulario Web Form con Microsoft ASP.NET
Creación de controles de usuario
Herramientas para el uso de AJAX
Casa de Apuestas Germán Gómez Beviá Juan Carlos Moral Mena
Bouvier, Eric Mast, Lucas Tesone, Federico. Extensible Application Markup Language (XAML). Controles Enlace de datos (Laboratorio 2) Diseño Gráficos 2-D.
Desarrollo de Aplicaciones para Internet
Model View Controller (MVC)
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
ASP.NET MVC 3 Web Camps 2011 twitter: #eswebcamp.
Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización Entre plataformas Entre lenguajes.
Introducción ASP .NET.
Fundamentos de Javascript Desarrollo de Aplicaciones para Internet.
LOGICA DE NEGOCIOS ADAN GONZALEZ BARRERA.
INFOPATH 2010 DANIELA CHEDRAUI.
Barista: Eduardo Moranchel
Javascript, aplicaciones y framewors Tutor: Ing. Juan E. Talavera Horn 2010.
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
Ing. CIP Fabián Silva Alvarado
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
1er. Comité de Usuarios. Historia ¿Qué hay de nuevo? No más cygwin. Exportación granular: trabajo distribuído. Compilación de metadatos. Manejo.
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
Acceso a datos con Sharepoint
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
JavaScript Frameworks
Java Server Faces.
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
SQL SERVER Reporting Services
Node.JS Proyecto Redes de Computadores Sem
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Programación Orientada a Aspectos (POA)
InfoPath Ventajas y Uso.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
AJAX Daniel Montenegro Cordero Ingeniería de Sistemas y Computación Pontificia Universidad Javeriana - Cali.
INTRODUCCIÓN A AJAX. ¿Qué es AJAX? Acrónimo de Asynchronous JavaScript And XML No es ninguna tecnología, ni lenguaje de programación. Es una técnica de.
Ajax en 3 Capas Ing. Pedro Luis Rodriguez. El Cliente/Servidor WEB Cliente: Navegador WEB. Internet Explorer, Mozilla FireFox Cliente: Navegador WEB.
APLICACIÓN EN VISUAL BASIC
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.
DOM Document Object Model Fernando Rodrìguez. Que es DOM Dom es una plataforma o interfaz neutral que permite a los programas y scripts accesar o modificar.
LOGO e-Learning Desktop Integración de RIA’s a objetos de Aprendizaje Alvaro Rodríguez, Darvin Orozco, Rocael Hernández Universidad Galileo {alvrodriguez,
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
PROGRAMACION ORIENTADA A OBJETOS
SEMINARIO 2 Miembros del grupo: Juan Francisco García Jorge Mahecha Sergi Mellado.
Manual Desarrollo Flex – J2EE. Contenidos Análisis y Diseño 1 Implementación 2 J2EE 3 Pruebas 4.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Presentación de la solución Junio Concepto ROUTING TIER ROUTING TIER FRONT END TIER FRONT END TIER COMM TIER COMM TIER TRANSLATE TIER TRANSLATE.
Tutor: Ing. Juan E. Talavera Horn 2010 Google Web Toolkit (GWT)
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Ing. Lorena Ruhl - Marco Rapallini - Javier FabiánMódulo 5: jQuery Ing. A. Lorena Ruhl Universidad Tecnológica Nacional Facultad Regional.
Java Script. Como habilitar JavaScript en tu navegador
Introducción a ASP.NET MVC3. Introducción ASP.NET MVC es un framework para la creación de aplicaciones web que aplica el patrón Model View Controller.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML.
Introducción a programación web Martin Esses. Los datos almacenados en las bases de datos normalmente son mostrados en nuestras vistas. Para que nuestras.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Aplicaciones Web Verano Programación de aplicaciones Web FCC-BUAP Verano 2016BMB - RAM2.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Desarrollo y servicios web Luisa Fernanda Rincón Pérez
Transcripción de la presentación:

BackBone JS Una introducción

Qué es BackBone es una librería de unos 4kb que provee una estructura para aplicaciones que se basan fuertemente en javascript. Provee “modelos” con bindeos de tipo key-value, eventos, colecciones con una API de funciones, vistas asociadas a los eventos, y conexión vía una interface RESTful con JSON. Funcionamiento: cuando alguna propiedad del modelo cambia, se notifica a las vistas que “escuchan” los cambios en el modelo y las vistas se actualizan automáticamente a sí mismas según corresponda, sin la necesidad de manejarlas manualmente. Permite separar más prolijamente los datos de la presentación. El modelo se sincroniza con el servidor mientras que las vistas escuchan cambios a los objetos suscriptos del modelo, y renderizan el HTML que les corresponde.

¿Reemplaza a jQuery? No, no se superponen, más bien son complementarios, tienen alcances y usos diferentes. Backbone maneja abstracciones de un nivel más alto, mientras jQuery trabaja con el DOM, normaliza eventos, etc.

¿Por qué usar Backbone? Porque muy frecuentemente el código de front-end se convierte en una madeja desprolija de callbacks anidados, manipulaciones al DOM, HTML de presentación, etc. Backbone ofrece una manera más limpia y elegante de manejar ese caos.

¿Dónde usar Backbone? Backbone es ideal para front-ends pesados y con mucho manejo de datos. Por ejemplo, una aplicación con 50 eventos diferentes, con un modelo de varios tipos de datos, con objetos con 6 métodos de persistencia y de lógica de negocio cada uno, con interacción entre objetos y elementos del DOM, etc. Como podrían ser la interfaz de GMail, Twitter, Facebook, y otras aplicaciones con un front-end cargado y complejo. Backbone hace más fácil “navegar” y entender el código.

En definitiva … en lugar de manejar un JSON enorme, toquetear el DOM manualmente y realizar muchas llamadas ajax, se trata de poder llegar a escribir: book.save({title: "Lorem Ipsum"}); … y que todo el UI que referencia al libro se actualice automáticamente y los cambios se guarden en el servidor.

Modelo Un modelo representa una entidad, y contiene los datos y buena parte de la lógica: conversiones, validaciones, propiedades computadas, etc. var Game = Backbone.Model.extend({ initialize: function(){ alert(“¡Hola!”); }, defaults: { name: 'Default title', releaseDate: 2012, } });

Modelo /* New */ var juego = new Game({ name: “Maniac Mansion", releaseDate: 2012}); /* Get */ var release = juego.get('releaseDate'); /* Set (guarda en memoria, en cookies) */ juego.set({ name: “Maniac Mansion 2"}); /* Guardar (llama al servidor con POST por ser un nuevo objeto, sino sería una llamada PUT) */ juego.save();

Colección Las colecciones en Backbone son esencialmente una colección de modelos. Una colección de juegos: var GamesCollection = Backbone.Collection.extend({ model : Game, } });

Colección var GamesCollection = Backbone.Collection.extend({ model : Game, old : function() { return this.filter(function(game) { return game.get('releaseDate') < 2000; }); } }); var games = new GamesCollection games.get(3); /* Retorna el juego con id=3 */

Colección var GamesCollection = Backbone.Collection.extend({ model : Game, url: '/games' } }); var games = new GamesCollection games.fetch(); El método fetch hace una llamada asincrónica al servidor y popula la colección con los resultados.

Vista Para los puristas de MVC, parece más un controlador que una vista. Tiene fundamentalmente dos tareas: Escuchar a los eventos disparados por el DOM, modelos y colecciones. Representar el estado de la aplicación y el modelo de datos al usuario. GameView = Backbone.View.extend({     tagName : "div",     className: "game",     render : function() {       /* código para renderizar el html */     }   });  

Vista render : function() { $(this.el).html(“<b>” + this.model.get('name') + “</b>”); } El objeto el es el elemento del DOM al que hace referencia la vista. En este caso, el elemento div renderizará el nombre del juego. Para HTML más complejo, lo mejor es usar templates. Por default, Backbone provee la solución de templates de Underscore.JS.

Vista Definimos y atamos un evento a la vista. events: { 'click .name': 'handleClick' }, handleClick: function(){ alert(‘Clickeaste, chabón’); }

Vista GameView = Backbone.View.extend({ initialize: function (args) {      _.bindAll(this, 'changeName');           this.model.bind('change:name', this.OnGameNameChanged);   },   });   En este ejemplo, cuando el atributo name del modelo cambie, se llamará a la función OnGameNameChanged. Además de change, Se puede hacer un polling de cambios usando add y remove. En el bind, se puede reemplazar model por collection para que escuchar cambios en la colección. BindAll es una función de Underscore.JS para mantener el objeto this en el callback.

Controlador Define la lógica de ruteo, relacionando una URL con una función javascript. Permite crear aplicaciones bookmarkeables usando hash tags (#). var MyGameController = Backbone.Controller.extend({   routes : {     "say/:something" : "say"   },     say : function(something) {     alert(something); /* Ej.: http://myapp.root/#say/hello_world */   } }); var gameController = new MyGameController; Backbone.history.start();

Una app de ejemplo Una lista de tareas hecha con Backbone y ASP.Net MVC…

Fin }