7. ASP.NET APIs de Servicios para Aplicaciones
Membership Role Manager Personalization
Site Navigation Database Caching Health Monitoring
Arquitectura de ASP.NET
8. ASP.NET APIs de Servicios para Aplicaciones
Membership Role Manager Personalization
Site Navigation Database Caching Health Monitoring
ASP.NET “Page Framework”
Arquitectura de ASP.NET
Master Pages Themes/Skins Client ScriptingLocalization
9. ASP.NET APIs de Servicios para Aplicaciones
Membership Role Manager Personalization
Site Navigation Database Caching Health Monitoring
ASP.NET MVC
Arquitectura de ASP.NET
Model Binders View Engines Mobile RenderAjax Support
13. 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
14. ¿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
15. ¿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
18. 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);
}
}
20. 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 .
21. ¿Un View… que?
• Encargado de Renderizar vistas
– HTML
– Javascript
• Alternativa a “<% %>”
22. Objetivos de Razor
• Compacto
• Sencillo
• “Amigo del HTML”
• ¡Ya conocemos el lenguaje!
ViewEngine:- Componente de ASP.NET que se encarga de renderizar vistasActualmente, la gran mayoría de la gente utiliza el motor clasico de ASP.NET con “<% %>”Esta es una alternativa a ese motor
Objetivo principal de Razor: ahorrar teclas. Que sea mas fácil y rápido armar sitios con ASP.NET MVCPara eso es:CompactoSencilloPoco intrusivo, “amigo del HTML”No hay que aprender un lenguaje nuevo! Se programa con C# o VB.NET