SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado (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
 

Similar 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
 

Similar 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 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
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
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...
 

Más de César Jesús Angulo Gasco

Más 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

4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalRosarioChoque3
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 

Último (20)

4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 

[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