Disertantes:
Introducción al 
desarrollo web moderno
Ing. Rocco, Sebastián
e-mail: srocco@movizen.com
Ing. Tripoloni, Martín
e-mail: mtripoloni@gmail.com
Agenda
• Características principales.
• SPA (Single Page Application).
• ASP.NET MVC Web API.
• Responsive & Mobile First – Bootstrap.
• Desarrollo Caso Real.
• Knockout.js.
Características Principales
• Diseño minimalista.
• Multi Dispositivos, multi pantalla, multi*
– Responsive Design.
• Excelente experiencia de usuario (SPA).
• HTML5.
• Funcionamiento Off-line.
• Posicionamiento – SEO.
¿Qué es SPA?
• Aplicaciones ricas, responsivas que combinan
lo mejor de las Aplicaciones Web y Escritorio
construidas usando HTML5 y Javascript.
Arquitectura WEB - HTTP
Arquitectura WEB - HTTP
Beneficios
1. Buena experiencia de usuario.
2. Corre en cualquier dispositivo.
3. Puede funcionar offline.
4. Deployable en los App-Store.
Arquitectura SPA
Server Client
Web UI
HTML/CSS/JS
Data
services
JSON/XML
Application layer
JavaScript
Visible UI
HTML/CSS
Data access layer
JavaScript
Local storage
Navigation
APIs
Arquitectura SPA
Server Client
Web UI
HTML/CSS/JS
Data
services
JSON/XML
Application layer
JavaScript
Visible UI
HTML/CSS
Data access layer
JavaScript
Local storage
Navigation
APIs
ASP.NET MVC
KNOCKOUTJS
WEB API
UPSHOT.JS / Brezze.js
SAMMY.JS
HTML5
Frameworks SPA
Ventajas / Desventajas
• UI más rápida.
• Más interactiva.
• Puede trabajar offline.
• Perfecta para HTML5
and Mobile apps.
• Malo para SEO.
• Más complejo de
desarrollar.
• Necesidad de exponer lógica
de aplicación en el cliente.
• Requiere buen conocimiento
de JavaScript.
ASP.NET WEB API
¿Qué es Web API?
• Framework RESTfull para construir servicios
basados en HTTP.
• Diseñado para largo alcance.
• Usa HTTP como protocolo de aplicación, no de
transporte.
• Sus repuestas pueden ser XML o JSON.
¿Qué significa RESTfull?
• REST define un set de principios
arquitectónicos por los cuales se diseñan
servicios web haciendo foco en los recursos
del sistema, incluyendo cómo se accede al
estado de dichos recursos y cómo se
transfieren por HTTP hacia clientes escritos en
diversos lenguajes.
¿Por qué usar Web API?
Reah More Clients
Comparación Web API y WCF
Característica WCF WEB API
Protocolos
HTTP/S, TCP, UDP,
MSMQ, etc.
Solo HTTP
Encoding
Varias codificaciones
(Texto, Binario, etc)
Media Types: JSON, XML
WS-* Standards Si No
Tamaño Pesado (SOAP) Liviano
Patrones de intercambio
de mensajes
Request-Reply; One
Way; Duplex
HTTP -
Request/Response
Métodos HTTP
Respuestas Web API
• 201 Created.
• 200 Success/204 Success but No Content.
• 403 Not authorized.
• 404 Does not exist.
• 500 Server Error.
• 301 Uri Moved.
Implementando Web API
• El Controller debe derivar ApiController.
• Implementar las acciones
[Get/Post/Put/Delete] de acuerdo a las
acciones que necesita realizar.
• Prefijar los nombres de los métodos como el
verbo HTTP deseado – PostComment.
• Las acciones mapean a métodos HTTP.
Ruta default en Web API
• routes.MapHttpRoute(
– name: "DefaultApi",
– routeTemplate: "api/{controller}/{id}",
– defaults: new { id =
RouteParameter.Optional }
– );
Responsive & Mobile First
Responsive & Mobile First
¿Qué es Bootstrap?
• Potente Framework de UI(JavaScript, CSS, y
imágenes).
• Proyecto Open Source .
• Soporte a HTML5 y CSS3.
• Soporte a los principales navegadores.
• Fácil de usar.
• Muy liviano.
• Mobile First.
¿Por qué usar Bootstrap?
• Templates disponibles en la web para un
rápido inicio.
• Fácil de crear layouts modernos.
• Customizable.
• Baja curva de aprendizaje.
• Funciona bien con jQuery y otras librerías de
javascript.
Desarrollo Caso Real
Browser History – Sammy.js
• Hay que escribir código para manejar la
navegación:
Knockout.js
¿Qué es Knockout.js?
• Es una librería JavaScript que nos ayuda a
crear interfaces ricas, responsivas y dinámicas
con un modelo de datos “limpio”.
¿Qué es Knockout.js?
• Gratuito, open source (MIT license).
• 100% JavaScript. Compatible con otros frameworks web.
• Soporta todos los navegadores conocidos:
– IE 6+, Firefox 2+, Chrome, Opera, Safari (desktop/mobile)
• Liviano — 40kb minified,
– Se reduce a 14kb si usamos compresión HTTP.
• No requiere dependencias a otras librerías.
• Excelente documentación:
– API documentada, ejemplos y tutoriales interactivos.
Patrón MVVM
MVVM vs MVC
Características Principales
• Bindings de forma declarativa.
– Simple asociación de elementos del DOM con el modelo usado utilizando
una sintaxis consistente.
• Refresco UI automático.
– Siempre que el modelo cambia, la interface se actualiza automáticamente.
• Dependency Tracking.
– Implícitamente mantiene actualizado todas las relaciones del modelo.
• Templating
– Simple generación de sofisticados templates de UI.
¿Por qué usar Knockout.js?
• Excelente linkeo entre la presentación y el
modelo.
• Extensible.
• Usable en apps/arquitecturas existentes.
• Recursos de aprendizajes disponibles en la
Web.
• Responsabilidades definidas (MV* pattern).
¿Preguntas?
Muchas Gracias!
Datos de Contacto
Ing. Rocco, Sebastián
e-mail: srocco@movizen.com
Ing. Tripoloni, Martín
e-mail: mtripoloni@gmail.com

Introducción al desarrollo web moderno

  • 1.
    Disertantes: Introducción al  desarrollo web moderno Ing. Rocco,Sebastián e-mail: srocco@movizen.com Ing. Tripoloni, Martín e-mail: mtripoloni@gmail.com
  • 2.
    Agenda • Características principales. •SPA (Single Page Application). • ASP.NET MVC Web API. • Responsive & Mobile First – Bootstrap. • Desarrollo Caso Real. • Knockout.js.
  • 3.
    Características Principales • Diseñominimalista. • Multi Dispositivos, multi pantalla, multi* – Responsive Design. • Excelente experiencia de usuario (SPA). • HTML5. • Funcionamiento Off-line. • Posicionamiento – SEO.
  • 4.
    ¿Qué es SPA? •Aplicaciones ricas, responsivas que combinan lo mejor de las Aplicaciones Web y Escritorio construidas usando HTML5 y Javascript.
  • 5.
  • 6.
  • 7.
    Beneficios 1. Buena experienciade usuario. 2. Corre en cualquier dispositivo. 3. Puede funcionar offline. 4. Deployable en los App-Store.
  • 8.
    Arquitectura SPA Server Client WebUI HTML/CSS/JS Data services JSON/XML Application layer JavaScript Visible UI HTML/CSS Data access layer JavaScript Local storage Navigation APIs
  • 9.
    Arquitectura SPA Server Client WebUI HTML/CSS/JS Data services JSON/XML Application layer JavaScript Visible UI HTML/CSS Data access layer JavaScript Local storage Navigation APIs ASP.NET MVC KNOCKOUTJS WEB API UPSHOT.JS / Brezze.js SAMMY.JS HTML5
  • 10.
  • 11.
    Ventajas / Desventajas •UI más rápida. • Más interactiva. • Puede trabajar offline. • Perfecta para HTML5 and Mobile apps. • Malo para SEO. • Más complejo de desarrollar. • Necesidad de exponer lógica de aplicación en el cliente. • Requiere buen conocimiento de JavaScript.
  • 12.
  • 13.
    ¿Qué es WebAPI? • Framework RESTfull para construir servicios basados en HTTP. • Diseñado para largo alcance. • Usa HTTP como protocolo de aplicación, no de transporte. • Sus repuestas pueden ser XML o JSON.
  • 14.
    ¿Qué significa RESTfull? •REST define un set de principios arquitectónicos por los cuales se diseñan servicios web haciendo foco en los recursos del sistema, incluyendo cómo se accede al estado de dichos recursos y cómo se transfieren por HTTP hacia clientes escritos en diversos lenguajes.
  • 15.
    ¿Por qué usarWeb API? Reah More Clients
  • 16.
    Comparación Web APIy WCF Característica WCF WEB API Protocolos HTTP/S, TCP, UDP, MSMQ, etc. Solo HTTP Encoding Varias codificaciones (Texto, Binario, etc) Media Types: JSON, XML WS-* Standards Si No Tamaño Pesado (SOAP) Liviano Patrones de intercambio de mensajes Request-Reply; One Way; Duplex HTTP - Request/Response
  • 17.
  • 18.
    Respuestas Web API •201 Created. • 200 Success/204 Success but No Content. • 403 Not authorized. • 404 Does not exist. • 500 Server Error. • 301 Uri Moved.
  • 19.
    Implementando Web API •El Controller debe derivar ApiController. • Implementar las acciones [Get/Post/Put/Delete] de acuerdo a las acciones que necesita realizar. • Prefijar los nombres de los métodos como el verbo HTTP deseado – PostComment. • Las acciones mapean a métodos HTTP.
  • 20.
    Ruta default enWeb API • routes.MapHttpRoute( – name: "DefaultApi", – routeTemplate: "api/{controller}/{id}", – defaults: new { id = RouteParameter.Optional } – );
  • 21.
  • 22.
  • 23.
    ¿Qué es Bootstrap? •Potente Framework de UI(JavaScript, CSS, y imágenes). • Proyecto Open Source . • Soporte a HTML5 y CSS3. • Soporte a los principales navegadores. • Fácil de usar. • Muy liviano. • Mobile First.
  • 24.
    ¿Por qué usarBootstrap? • Templates disponibles en la web para un rápido inicio. • Fácil de crear layouts modernos. • Customizable. • Baja curva de aprendizaje. • Funciona bien con jQuery y otras librerías de javascript.
  • 25.
  • 26.
    Browser History –Sammy.js • Hay que escribir código para manejar la navegación:
  • 27.
  • 28.
    ¿Qué es Knockout.js? •Es una librería JavaScript que nos ayuda a crear interfaces ricas, responsivas y dinámicas con un modelo de datos “limpio”.
  • 29.
    ¿Qué es Knockout.js? •Gratuito, open source (MIT license). • 100% JavaScript. Compatible con otros frameworks web. • Soporta todos los navegadores conocidos: – IE 6+, Firefox 2+, Chrome, Opera, Safari (desktop/mobile) • Liviano — 40kb minified, – Se reduce a 14kb si usamos compresión HTTP. • No requiere dependencias a otras librerías. • Excelente documentación: – API documentada, ejemplos y tutoriales interactivos.
  • 30.
  • 31.
  • 32.
    Características Principales • Bindingsde forma declarativa. – Simple asociación de elementos del DOM con el modelo usado utilizando una sintaxis consistente. • Refresco UI automático. – Siempre que el modelo cambia, la interface se actualiza automáticamente. • Dependency Tracking. – Implícitamente mantiene actualizado todas las relaciones del modelo. • Templating – Simple generación de sofisticados templates de UI.
  • 33.
    ¿Por qué usarKnockout.js? • Excelente linkeo entre la presentación y el modelo. • Extensible. • Usable en apps/arquitecturas existentes. • Recursos de aprendizajes disponibles en la Web. • Responsabilidades definidas (MV* pattern).
  • 34.
  • 35.
  • 36.
    Datos de Contacto Ing.Rocco, Sebastián e-mail: srocco@movizen.com Ing. Tripoloni, Martín e-mail: mtripoloni@gmail.com