SlideShare uma empresa Scribd logo
1 de 18
Jesus Angulo
MCTS & MSP
Facebook.com/jesuslink2514
Twitter.com/jesulink2514
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
ViewModels
Qué es una ViewModel?
• Un modelo especifico para una

vista en particular.

• El Problema de la ambigüedad

del “Modelo”
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.
ViewModels
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.
Validacion
Concepto Clave en Validación
Nunca confiar en la
entrada del Usuario
(query string, cookies, formdata,etc)
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]
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.
Validación
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.
Validación Lado Cliente
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

@{Html.EnableClientValidation();}
@{Html.EnableUnobtrusiveJavaScript();}
@Scripts.Render(“~/bundles/jqueryval”)
Validación
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.
https://github.com/jesulink2514/CursoMV
C4
Gracias ! Hasta el próximo capítulo
/jesulink2514
/jesulink2514

Domingo 5 de Enero , Ajax en
ASP.NET MVC y Seguridad

Mais conteúdo relacionado

Mais procurados

Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaOpenExpoES
 
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)Nacho García Fernández
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCriojadotnet
 
7. Creacion De Controles De Usuario
7.  Creacion De Controles De Usuario7.  Creacion De Controles De Usuario
7. Creacion De Controles De Usuarioguest3cf6ff
 
6. Validando Las Entradas De Usuario
6.  Validando Las Entradas De Usuario6.  Validando Las Entradas De Usuario
6. Validando Las Entradas De Usuarioguest3cf6ff
 
6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuarioJaime Acurio
 
Validación de campos para bd taller
Validación de campos para bd tallerValidación de campos para bd taller
Validación de campos para bd tallerjpalencia
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCDanae Aguilar Guzmán
 
Asegúr@IT III - Ataques SQL Injection masivos
Asegúr@IT III - Ataques SQL Injection masivosAsegúr@IT III - Ataques SQL Injection masivos
Asegúr@IT III - Ataques SQL Injection masivosChema Alonso
 

Mais procurados (15)

Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfecta
 
6.angular js
6.angular js6.angular js
6.angular js
 
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
AngularJS 1 - A Superheroic Javascript MVC framework (Spanish)
 
Curso AngularJS - 1. introducción
Curso AngularJS - 1. introducciónCurso AngularJS - 1. introducción
Curso AngularJS - 1. introducción
 
Curso AngularJS - 6. formularios
Curso AngularJS - 6. formulariosCurso AngularJS - 6. formularios
Curso AngularJS - 6. formularios
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
7. Creacion De Controles De Usuario
7.  Creacion De Controles De Usuario7.  Creacion De Controles De Usuario
7. Creacion De Controles De Usuario
 
Validación de formularios
Validación de formulariosValidación de formularios
Validación de formularios
 
6. Validando Las Entradas De Usuario
6.  Validando Las Entradas De Usuario6.  Validando Las Entradas De Usuario
6. Validando Las Entradas De Usuario
 
Mvc
MvcMvc
Mvc
 
6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuario
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
Validación de campos para bd taller
Validación de campos para bd tallerValidación de campos para bd taller
Validación de campos para bd taller
 
ASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVCASP.NET MVC - Introducción a ASP.NET MVC
ASP.NET MVC - Introducción a ASP.NET MVC
 
Asegúr@IT III - Ataques SQL Injection masivos
Asegúr@IT III - Ataques SQL Injection masivosAsegúr@IT III - Ataques SQL Injection masivos
Asegúr@IT III - Ataques SQL Injection masivos
 

Destaque (20)

Capitulo 11-12
Capitulo 11-12Capitulo 11-12
Capitulo 11-12
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 
Nia 2009
Nia 2009Nia 2009
Nia 2009
 
Tarabajo formal de las redes sociales
Tarabajo formal de las redes socialesTarabajo formal de las redes sociales
Tarabajo formal de las redes sociales
 
Psu género lírico 2011
Psu género lírico 2011Psu género lírico 2011
Psu género lírico 2011
 
Publicidad síntesis
Publicidad síntesisPublicidad síntesis
Publicidad síntesis
 
PASO 4 de los Ocho pasos para el desarrollo de una investigación
PASO 4 de los Ocho pasos para el desarrollo de una investigación PASO 4 de los Ocho pasos para el desarrollo de una investigación
PASO 4 de los Ocho pasos para el desarrollo de una investigación
 
Quepersonaje
QuepersonajeQuepersonaje
Quepersonaje
 
Guin de podcast bien
Guin de podcast bienGuin de podcast bien
Guin de podcast bien
 
Emerita Augusta
Emerita AugustaEmerita Augusta
Emerita Augusta
 
Presentación Rollpix 2011
Presentación Rollpix 2011Presentación Rollpix 2011
Presentación Rollpix 2011
 
Caso procesamiento de nuez
Caso procesamiento de nuezCaso procesamiento de nuez
Caso procesamiento de nuez
 
Clase ii cp
Clase ii cpClase ii cp
Clase ii cp
 
Andalucía
AndalucíaAndalucía
Andalucía
 
Tutorial Corel: Figura 3
Tutorial Corel: Figura 3Tutorial Corel: Figura 3
Tutorial Corel: Figura 3
 
Escuela laboratorio san ramón
Escuela laboratorio san ramónEscuela laboratorio san ramón
Escuela laboratorio san ramón
 
Manualfunciones
ManualfuncionesManualfunciones
Manualfunciones
 
IIN LINE - fitness styling business
IIN LINE - fitness styling businessIIN LINE - fitness styling business
IIN LINE - fitness styling business
 
El lenguaje de la publicidad
El lenguaje de la publicidadEl lenguaje de la publicidad
El lenguaje de la publicidad
 
Clase 5AVA - Liderazgo vs Autoridad
Clase 5AVA - Liderazgo vs AutoridadClase 5AVA - Liderazgo vs Autoridad
Clase 5AVA - Liderazgo vs Autoridad
 

Semelhante a [Curso MVC] ViewModels y Validacion

NET MAUI Terasoft.pptx
NET MAUI Terasoft.pptxNET MAUI Terasoft.pptx
NET MAUI Terasoft.pptxLuis775803
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsPlain Concepts
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
 
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsdotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Eduard Tomàs
 
6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuarioJaime Acurio
 
Lp II clase02 - Modelo Vista Controlador
Lp II   clase02 - Modelo Vista ControladorLp II   clase02 - Modelo Vista Controlador
Lp II clase02 - Modelo Vista ControladorAngelDX
 
Vaadin 8 en BBR Spa
Vaadin 8 en BBR SpaVaadin 8 en BBR Spa
Vaadin 8 en BBR Spadavidsm1979
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumEduardo Riol
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptRolitoChc1
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...SolidQ
 

Semelhante a [Curso MVC] ViewModels y Validacion (20)

GWT - Una introducción
GWT - Una introducciónGWT - Una introducción
GWT - Una introducción
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
 
NET MAUI Terasoft.pptx
NET MAUI Terasoft.pptxNET MAUI Terasoft.pptx
NET MAUI Terasoft.pptx
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard Tomàs
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.Forms
 
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsdotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6
 
6. validando las entradas de usuario
6.  validando las entradas de usuario6.  validando las entradas de usuario
6. validando las entradas de usuario
 
Lp II clase02 - Modelo Vista Controlador
Lp II   clase02 - Modelo Vista ControladorLp II   clase02 - Modelo Vista Controlador
Lp II clase02 - Modelo Vista Controlador
 
Vaadin 8 en BBR Spa
Vaadin 8 en BBR SpaVaadin 8 en BBR Spa
Vaadin 8 en BBR Spa
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 
Health WorldBank 2012
Health WorldBank 2012Health WorldBank 2012
Health WorldBank 2012
 
Gwt IV -mvp
Gwt IV -mvpGwt IV -mvp
Gwt IV -mvp
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
STOP a la fuga de información: la barrera indispensable de seguridad en SQL S...
 

Mais de César Jesús Angulo Gasco

Mais de César Jesús Angulo Gasco (15)

.NET MAUI + Azure AD B2C
.NET MAUI + Azure AD B2C.NET MAUI + Azure AD B2C
.NET MAUI + Azure AD B2C
 
Aplicaciones distribuidas con Dapr
Aplicaciones distribuidas con DaprAplicaciones distribuidas con Dapr
Aplicaciones distribuidas con Dapr
 
.Net core y microservicios
.Net core y microservicios.Net core y microservicios
.Net core y microservicios
 
Escalando tu cluster de Kubernetes con AKS
Escalando tu cluster de Kubernetes con AKSEscalando tu cluster de Kubernetes con AKS
Escalando tu cluster de Kubernetes con AKS
 
Integrando Azure AD B2C con Xamarin.Forms
Integrando Azure AD B2C con Xamarin.FormsIntegrando Azure AD B2C con Xamarin.Forms
Integrando Azure AD B2C con Xamarin.Forms
 
Xamarin.Forms 4.0 Preview
Xamarin.Forms 4.0 PreviewXamarin.Forms 4.0 Preview
Xamarin.Forms 4.0 Preview
 
Novedades en Xamarin.forms.3.0
Novedades en Xamarin.forms.3.0Novedades en Xamarin.forms.3.0
Novedades en Xamarin.forms.3.0
 
Vuelve tu aplicación de Xamarin.Forms súper rápida
Vuelve tu aplicación de Xamarin.Forms súper rápidaVuelve tu aplicación de Xamarin.Forms súper rápida
Vuelve tu aplicación de Xamarin.Forms súper rápida
 
Aplicaciones inteligentes con servicios cognitivos
Aplicaciones inteligentes con servicios cognitivosAplicaciones inteligentes con servicios cognitivos
Aplicaciones inteligentes con servicios cognitivos
 
Notificaciones push con Xamarin.Forms y Azure Functions
Notificaciones push con Xamarin.Forms y Azure FunctionsNotificaciones push con Xamarin.Forms y Azure Functions
Notificaciones push con Xamarin.Forms y Azure Functions
 
Explorando los controles de Xamarin.Forms
Explorando los controles de Xamarin.FormsExplorando los controles de Xamarin.Forms
Explorando los controles de Xamarin.Forms
 
Azure DocumentDB - GlobalAzureBootcamp
Azure DocumentDB - GlobalAzureBootcampAzure DocumentDB - GlobalAzureBootcamp
Azure DocumentDB - GlobalAzureBootcamp
 
01- Introduccion a Knockout - #knockout series
01- Introduccion a Knockout - #knockout series01- Introduccion a Knockout - #knockout series
01- Introduccion a Knockout - #knockout series
 
Machine learning
Machine learningMachine learning
Machine learning
 
Capitulo 09-10
Capitulo 09-10Capitulo 09-10
Capitulo 09-10
 

Último

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 

Último (20)

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 

[Curso MVC] ViewModels y Validacion

  • 1. Jesus Angulo MCTS & MSP Facebook.com/jesuslink2514 Twitter.com/jesulink2514
  • 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.
  • 14. Validación Lado Cliente <appSettings> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings> @{Html.EnableClientValidation();} @{Html.EnableUnobtrusiveJavaScript();} @Scripts.Render(“~/bundles/jqueryval”)
  • 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.
  • 18. Gracias ! Hasta el próximo capítulo /jesulink2514 /jesulink2514 Domingo 5 de Enero , Ajax en ASP.NET MVC y Seguridad