ASP.NET MVC Workshop Día 1

30
Workshop ASP.NET MVC Día 1 Rodolfo Finochietti MVP ASP.NET/IIS Lagash Systems [email protected] @rodolfof

description

Introducción a ASP.NET y otras tecnologías asociadas

Transcript of ASP.NET MVC Workshop Día 1

Page 1: ASP.NET MVC Workshop Día 1

WorkshopASP.NET MVC

Día 1

Rodolfo FinochiettiMVP ASP.NET/IISLagash [email protected]@rodolfof

Page 2: ASP.NET MVC Workshop Día 1

Agenda

• Arquitectura– Web– ASP.NET

• Introducción a ASP.NET MVC• Acciones y Rutas• Controladores• Vistas– Razor

• Model Binding

Page 3: ASP.NET MVC Workshop Día 1

Arquitectura Web en .NET

Page 4: ASP.NET MVC Workshop Día 1

Por que construir aplicacionesWeb: Es facil

Page 5: ASP.NET MVC Workshop Día 1

Arquitectura Web

http://www.w3.org/TR/webarch

Page 6: ASP.NET MVC Workshop Día 1

¿Cómo funciona HTTP?

Page 7: ASP.NET MVC Workshop Día 1

ASP.NET APIs de Servicios para Aplicaciones

MembershipMembership Role ManagerRole Manager PersonalizationPersonalization

Site NavigationSite Navigation Database Caching

Database Caching

Health Monitoring

Health Monitoring

Arquitectura de ASP.NET

Page 8: ASP.NET MVC Workshop Día 1

ASP.NET APIs de Servicios para Aplicaciones

MembershipMembership Role ManagerRole Manager PersonalizationPersonalization

Site NavigationSite Navigation Database Caching

Database Caching

Health Monitoring

Health Monitoring

ASP.NET “Page Framework”

Arquitectura de ASP.NET

Master Pages

Master Pages

Themes/Skins

Themes/Skins

Client Scripting

Client Scripting

LocalizationLocalization

Page 9: ASP.NET MVC Workshop Día 1

ASP.NET APIs de Servicios para Aplicaciones

MembershipMembership Role ManagerRole Manager PersonalizationPersonalization

Site NavigationSite Navigation Database Caching

Database Caching

Health Monitoring

Health Monitoring

ASP.NET MVC

Arquitectura de ASP.NET

Model Binders

Model Binders

View Engines

View Engines

Mobile Render

Mobile Render

Ajax SupportAjax Support

Page 10: ASP.NET MVC Workshop Día 1

Demo

Arquitectura ASP.NET

Page 11: ASP.NET MVC Workshop Día 1

Introducción a

ASP.NET MVC

Page 12: ASP.NET MVC Workshop Día 1

Modelo-Vista-Controlador

Model

ControllerView

Xerox PARC 1978http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

Page 13: ASP.NET MVC Workshop Día 1

ASP.NET MVC

• Un framework para Web Development• Más control sobre el HTML– Más Web-Frendly

• Más testeable• Pensado para no ocular la naturaleza de la

arquitectura Web• Esta construido sobre en ASP.NET

Page 14: ASP.NET MVC Workshop Día 1

¿Que ofrece?• SoC (Separation of Concerns)– TDD por default–Mantenibilidad

• Url y HTML mas limpio– SEO y REST friendly• /Usuarios/Buscar/Rodolfo

– CSS Friendly• <html> <div> <label> <span>

• Modelo de programación mas performante–No hay ViewState–No hay modelo de eventos

Page 15: ASP.NET MVC Workshop Día 1

¿Como trabaja?Navego a

http://.../Productos/Listar

Se determina la ruta

El controller Productos es

creado

Un método Listar del

controller es invocado

Se ejecuta la logica del controller

Se dibuja la vista pasándole la

ViewData

Se dibujan Urls que apuntan a otras acciones

de otros controllers

Page 16: ASP.NET MVC Workshop Día 1

Rutas

www.sitio.com/products/reports/1/06/2008

Page 17: ASP.NET MVC Workshop Día 1

URLs amigables

• Legibles– www.sitio.com/products.aspx?

module=reports&productId=1&&month=6year=2008 – www.sitio.com/products/report/1/6/2008

• Predecibles– http://es.wikipedia.org/wiki/Lagash

Page 18: ASP.NET MVC Workshop Día 1

Controlador – Uso Básico

• Escenarios, Objetivos y Diseño– Las URLs indican “acciones” del Controlador, no páginas – Las acciones deben declarase en el Controlador.– El controlador ejecuta lógica y elige la vista.

public ActionResult ShowPost(int id) { Post p = PostRepository.GetPostById(id); if (p != null) { View(p); } else { View("nosuchpost", id); }}

Page 19: ASP.NET MVC Workshop Día 1

Demo

Rutas y Controladores

Page 20: ASP.NET MVC Workshop Día 1

Vistas – Uso Básico

• Escenarios, Objetivos y Diseño:– Generan HTML u otro tipo de contenido.

• Helpers pre-definidos.

– Pueden ser .ASPX, .ASCX, .MASTER, etc.– Pueden reemplazarse con otras tecnologías:

• Template engines (NVelocity, Spark, …).• Formatos de salida (images, RSS, JSON, …).• Pueden definirse vistas Mock para testing.

– El controlador ofrece datos a la Vista• Datos Loosely typed o Strongly Typed .

Page 21: ASP.NET MVC Workshop Día 1

¿Un View… que?

• Encargado de Renderizar vistas– HTML– Javascript

• Alternativa a “<% %>”

Page 22: ASP.NET MVC Workshop Día 1

Objetivos de Razor

• Compacto• Sencillo• “Amigo del HTML”• ¡Ya conocemos el lenguaje!

Page 23: ASP.NET MVC Workshop Día 1

Demo

Vistas y Razor

Page 24: ASP.NET MVC Workshop Día 1

Model Binding

Enlazar automáticamente de elementos HTML a propiedades de un objeto (incluyendo su creación)

Page 25: ASP.NET MVC Workshop Día 1

Binding manual

Page 26: ASP.NET MVC Workshop Día 1

Binding automático

Page 27: ASP.NET MVC Workshop Día 1

Demo

ModelosModel Binding

Page 28: ASP.NET MVC Workshop Día 1

Work Time

Page 29: ASP.NET MVC Workshop Día 1

Contacto

• Mail:– [email protected]

• Blogs:– http://shockbyte.net

• Twitter:– @rodolfof

Page 30: ASP.NET MVC Workshop Día 1

¡Gracias!