asp.net mvc workshop día 1
DESCRIPTION
Introducción a ASP.NET y otras tecnologías asociadasTRANSCRIPT
![Page 2: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/3.jpg)
Arquitectura Web en .NET
![Page 4: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/4.jpg)
Por que construir aplicacionesWeb: Es facil
![Page 5: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/5.jpg)
Arquitectura Web
http://www.w3.org/TR/webarch
![Page 6: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/6.jpg)
¿Cómo funciona HTTP?
![Page 7: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/10.jpg)
Demo
Arquitectura ASP.NET
![Page 11: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/11.jpg)
Introducción a
ASP.NET MVC
![Page 12: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/14.jpg)
¿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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/15.jpg)
¿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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/16.jpg)
Rutas
www.sitio.com/products/reports/1/06/2008
![Page 17: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/19.jpg)
Demo
Rutas y Controladores
![Page 20: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/21.jpg)
¿Un View… que?
• Encargado de Renderizar vistas– HTML– Javascript
• Alternativa a “<% %>”
![Page 22: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/22.jpg)
Objetivos de Razor
• Compacto• Sencillo• “Amigo del HTML”• ¡Ya conocemos el lenguaje!
![Page 23: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/23.jpg)
Demo
Vistas y Razor
![Page 24: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/25.jpg)
Binding manual
![Page 26: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/26.jpg)
Binding automático
![Page 27: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/27.jpg)
Demo
ModelosModel Binding
![Page 28: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/28.jpg)
Work Time
![Page 30: ASP.NET MVC Workshop Día 1](https://reader033.vdocuments.net/reader033/viewer/2022061212/5495423db47959a1708b4675/html5/thumbnails/30.jpg)
¡Gracias!