2. Agenda
5. ViewModels
5.1 Que es un ViewModel
5.2 Propósito de un ViewModel
5.3 Representando entrada del Usuario
6. Validación
6.1 Validación lado del Servidor
6.2 Validación lado del Cliente
4. Qué es una ViewModel?
• Un modelo especifico para una
vista en particular.
• El Problema de la ambigüedad
del “Modelo”
5. Propósito de un ViewModel
• Reducir la complejidad de una
Vista o Controlador.
• Adaptarse a la entrada de
usuario que se requiere y que es
diferente a nuestro modelo de
dominio.
• Para mapear nuestros modelos y
proyectarlos en ViewModels
podemos emplear algunas
herramientas como AutoMapper.
7. Summary
• Un ViewModel es una „clase‟ de Modelo
que se crea específicamente para una
vista.
• Su propósito es simplificar una vista o
controlador para adaptar el modelo a la
entrada de usuario o a una vista en
particular.
• Podemos emplear herramientas como
AutoMapper.
9. Concepto Clave en Validación
Nunca confiar en la
entrada del Usuario
(query string, cookies, formdata,etc)
10. Validación en el framework MVC
• La Validación en MVC ha
evolucionado a través de las
versiones pasando de ser
tediosa y complicada a
abierta y enfocada al lado
cliente también.
• Enfoque centrado en el
modelo y validación a través
de Data Annotations.
[Range]
[Required]
[Remote]
11. Data Annotations Attributes
Data Annotations
Descripción
Compare
Compara el valor de dos propiedades del modelo para verificar
que sean iguales.
Remote
Usa jQuery Validate para llamar a una acción en el Servidor
para realizar la validación en el lado Cliente.
Required
Especifica que una propiedad es requerida.
Range
Especifica un rango numérico para los valores de un campo.
RegularExpression
Especifica que un campo debe encajar con la expresión regular
especificada.
StringLength
Especifica el numero máximo de caracteres que son permitidos
en el campo.
13. Metadata
• Las anotaciones de datos nos
permiten agregar metadatos a
nuestro modelo.
• La Metadata no solo se emplea para
validación.
• La Metadata se extrae del Modelo
con la ayuda de un MetaDataProvider.
16. Summary
• Los DataAnotations son una manera de especificar metada
en nuestro modelo que usamos para saber como representar
la entrada del usuario hasta para validarla.
• Esta integrado en el framework por defecto el uso de jQuery
Validation para la validación de lado del cliente.
• Debemos desconfiar siempre de la entrada del usuario y
nunca suponer que el usuario ingresara los datos correctos.
• La validación de lado del servidor es nuestra ultima línea de
Defensa.