5. Resumiendo…
• SoC (Separation of Concerns)
– TDD por default
– Mantenibilidad
• Url y HTML mas limpio
– SEO y REST friendly
• /Usuarios/Buscar/Nombre
– CSS Friendly
• <html> <div> <label> <span>
• Modelo de programación mas performante.
No hay ViewState.
No hay modelo de eventos.
6. ¿Qué es 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.
• No viewstate, no web-controls, no
codebehind. Solo HTML.
• Esta construido sobre en ASP.NET.
7. Patrón MVC
• Modelo – Vista - Controlador
• Es un patrón de arquitectura de software.
– Vista: Representación visual de la información del
modelo.
– Modelo: Representa uno o más objetos con un
estado determinado.
– Controlador: Es lo que puede alterar el estado del
modelo.
9. Patrón MVC - Modelo
• Los objetos del dominio.
• Implementan la lógica del dominio de la
aplicación.
• Suelen leer y persistir estados en una RDBMS.
• En sistemas grandes pueden tener una capa
de acceso a datos (DAL) separada.
10. Patrón MVC - Vista
• “Arma” la interfaz de usuario.
• Los datos que muestra son estados del objeto
que están gestionando.
• Utiliza controles comunes de la GUI en cuestión
(cajas de texto, dropdownlists, checkboxes).
• La GUI se construye con elementos propios de la
tecnología que se utilice:
– Cliente liviano (por lo general, HTML o formularios
XML).
– Cliente pesado (dependerá de la plataforma, etc.).
11. Patrón MVC - Controlador
• Maneja la interacción con el usuario y en
función de eso:
– Envía mensajes al modelo para modificar su
estado (es decir, cambia el valor de sus miembros,
etc.).
– Selecciona en último término el tipo de vista que
exhibirá al cliente en la GUI.
12. ¿Qué ofrece ASP.NET MVC?
• SoC (Separation of Concerns).
– TDD por default.
– Mantenibilidad.
• Url y HTML mas limpio.
– SEO y REST friendly.
• /Usuarios/Buscar/Nombre.
– CSS Friendly.
• <html> <div> <label> <span>
• Modelo de programación mas performante.
– No hay ViewState.
– No hay modelo de eventos.
13. ¿Cómo trabaja ASP.NET MVC?
1. Petición
HTTP
2. Parámetros
de ejecución
Model
3. Colección
datos resultado
View
3.Colección
datosresultado
4.Contenidode
interfazusuario
5. Contenido
HTTP
CLIENTE
SERVIDOR
Los componentes M, V y C
están del lado servidor.
14. ¿Cómo trabaja ASP.NET MVC?
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
15. Enrutamiento ASP.NET MVC
• MVC “mapea” URLs a las clases que son los
controladores.
• Las URLs entrantes no se refieren a recursos
físicos en el servidor.
• ASP.NET tiene esta nueva característica
denominada “enrutamiento”.
• Se crea un conjunto de reglas de enrutamiento
en el archivo Global.asax.
• El enrutamiento también está disponible para
WebForms regulares de ASP.NET.
16. Enrutamiento ASP.NET MVC
• Las URL como ésta no son amigables para los motores
de búsqueda:
– http://www.mysite.com/products.aspx?category=software
• En cambio, éstas si lo son:
– http://www.mysite.com/products/software
• El enrutamiento en ASP.NET permite que la aplicación
acepte requerimientos que no se mapean a archivos
físicos.
• Se usa una URL “semántica” que tiene sentido para el
usuario y es amigable para los optimizadores de
motores de búsqueda.