18
ASP.ne t MVC 4 con C# Jesus Angulo MCTS & MSP Facebook.com/jesuslink2514 Twitter.com/jesulink2514

[Curso MVC] ViewModels y Validacion

Embed Size (px)

Citation preview

Page 1: [Curso MVC] ViewModels y Validacion

ASP.net MVC 4 con C#Jesus AnguloMCTS & MSP Facebook.com/jesuslink2514Twitter.com/jesulink2514

Page 2: [Curso MVC] ViewModels y Validacion

Agenda5. ViewModels5.1 Que es un ViewModel5.2 Propósito de un ViewModel5.3 Representando entrada del Usuario

6. Validación6.1 Validación lado del Servidor6.2 Validación lado del Cliente

Page 3: [Curso MVC] ViewModels y Validacion

¿Qué es un ViewModel?

ViewModels

Page 4: [Curso MVC] ViewModels y Validacion

Qué es una ViewModel?• Un modelo especifico para

una vista en particular.

• El Problema de la ambigüedad del “Modelo”

Page 5: [Curso MVC] ViewModels y Validacion

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.

Page 6: [Curso MVC] ViewModels y Validacion

DEMOViewModels

¿Qué es un ViewModel?

Page 7: [Curso MVC] ViewModels y Validacion

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.

Page 8: [Curso MVC] ViewModels y Validacion

Validar la entrada de Usuario

asp.net MVC Validation

Validacion

Page 9: [Curso MVC] ViewModels y Validacion

Concepto Clave en Validación

Nunca confiar en la entrada del Usuario

(query string, cookies, formdata,etc)

Page 10: [Curso MVC] ViewModels y Validacion

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.

[Required]

[Range]

[Remote]

Page 11: [Curso MVC] ViewModels y Validacion

Data Annotations AttributesData

AnnotationsDescripción

CompareCompara el valor de dos propiedades del modelo para verificar que sean iguales.

RemoteUsa 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.

RangeEspecifica un rango numérico para los valores de un campo.

RegularExpression

Especifica que un campo debe encajar con la expresión regular especificada.

StringLengthEspecifica el numero máximo de caracteres que son permitidos en el campo.

Page 12: [Curso MVC] ViewModels y Validacion

Validación Lado del Servidor usando DataAnnotations

DEMO

Validación

Page 13: [Curso MVC] ViewModels y Validacion

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.

Page 14: [Curso MVC] ViewModels y Validacion

Validación Lado Cliente<appSettings>

<add key="ClientValidationEnabled" value="true"/>

<add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings>

@{Html.EnableClientValidation();} @{Html.EnableUnobtrusiveJavaScript();}

@Scripts.Render(“~/bundles/jqueryval”)

Page 15: [Curso MVC] ViewModels y Validacion

Validación Lado del Cliente usando jQuery Validation

DEMO

Validación

Page 16: [Curso MVC] ViewModels y Validacion

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.

Page 17: [Curso MVC] ViewModels y Validacion

https://github.com/jesulink2514/CursoMVC4

Page 18: [Curso MVC] ViewModels y Validacion

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Gracias ! Hasta el próximo capítulo

/jesulink2514

/jesulink2514Domingo 5 de Enero , Ajax en ASP.NET MVC y

Seguridad