Reglas de Validación para Xamarin y Windows

Plugin Reglas de Validación. Hay un eBook llamado Enterprise Application Patterns using Xamarin.Forms. “El eBook se centra en los patrones básicos y la guía arquitectónica para desarrollar aplicaciones empresariales Xamarin.Forms que son más fáciles de probar, mantener y evolucionar. Se brinda orientación sobre cómo implementar el patrón Model-View-ViewModel (MVVM), la inyección de dependencias, la navegación, la validación y la administración de la configuración, mientras se mantiene el acoplamiento flexible. Además, también hay orientación sobre cómo realizar autenticación y autorización con IdentityServer, acceder a datos remotos desde microservicios en contenedores y pruebas unitarias.” Dice David Britch – El autor.

Él tiene un muy buen artículo hablando sobre este tema aqui. Si quiere saber más sobre este tema, le recomiendo que vea su artículo y lea el eBook.

Esta publicación se centra en las reglas de validación en Xamarin.Forms con el complemento Plugin.ValidationRules que he lanzado. Entonces, puedes ver los ejemplos con el enfoque utilizado en esta publicación.

Temas:

Nota: También puedes ver la documentación de «Validando nuestro Modelo«.

Reglas de Validación – Introducción

Cualquier aplicación que acepte la entrada de los usuarios debe garantizar que la entrada sea válida. Sin validación, un usuario puede proporcionar datos que provocan que la aplicación falle. La validación impone reglas comerciales y evita que un atacante inyecte datos maliciosos.

Mejore la calidad de sus datos usando reglas de validación. Las reglas de validación verifican que la entrada que ingresa un usuario en un registro cumple con los estándares que usted especifica antes de que el usuario pueda guardar el registro. Una regla de validación puede contener su propia lógica que evalúa los datos en uno o más campos y devuelve un valor «Verdadero» o «Falso». Las reglas de validación también incluyen un mensaje de error para mostrar al usuario cuando la regla arroja un valor «False» debido a un valor no válido.

Puede especificar el mensaje de error para mostrar cuando una entrada falla la validación y vincularla a su interfaz de usuario para mostrarla. Plugin.ValidationRules implementa INotifyPropertyChanged. No necesitas preocuparte por las actulizaciones de tu UI.

¡Genial, ahora que entendemos las reglas de validación, podemos comenzar!

Instalación

Asumiendo que ya tenemos nuestro proyecto creado y ya sabemos que son las reglas de validación, entonces podemos proceder a instalar el Plugin.ValidationRules para nuestra aplicación en 3 sencillos pasos:

  1. En el Solution Explorer, haga clic derecho en el proyecto y seleccione Manage NuGet Package….solution-explorer-manage-nuget-package
  2. En la barra de Busqueda, escriba Plugin.ValidationRules ValidationRules.search-plugin-validation-rules
  3. Seleccione y instale Plugin.ValidationRules en su projecto.install-Pluglin.ValidationRules

Como usarlo

Reglas

En primer lugar, debe agregar las reglas que desee a su proyecto. Para eso debes agregar una clase que derive de la interfaz ValidationRule<T>.

Para esta sección, también creo una extensión para visual studio que crean una plantilla de regla vacía para ti. Con esta extensión, no necesita preocuparse por copiar y pegar código. Más información aquí.

Propiedades

Una vez que tenga sus reglas, debe crear las propiedades que desea validar. Esas propiedades deben ser un ValidatableObject<T>. Tus propiedades no necesitan implementar la interfaz INotifyPropertyChanged. Plugin.ValidationRules tiene su propia implementación llamada ExtendedPropertyChanged. Es quiere decir que el plugin hace todo el trabajo por ti.

Agregando Validaciones

Antes de agregar una regla de validación a una propiedad, asegúrese de inicializar la propiedad. Después de eso, agregue tantas reglas como desee a una propiedad.

Validando propiedades

Para validar una propiedad, simplemente llame al método myProperty.Validate(). Puedes hacerlo manualmente y usarlo en tu ViewModel o código detrás.

EXTRA: También puedes agregar un EventToCommandBehavior y vincularlo a un comando que llame al método de validar.

Si no quiere validar cada propiedad una por una; crea un método para validar todas las propiedades al mismo tiempo.

O puedes crear una propiedad ValidationUnit y pasar todas las propiedades, que quiera validar al mismo tiempo, por el constructor. Después de eso, puede llamar a su método yourUnit.Validate() para validar todas sus propiedades.

Errores de Validación

Si hay un error después de la validación, puede obtenerlo llamando a la lista de errores _myProperty.Errors en su código o llamando a la propiedad _myProperty.Error para obtener el primer error o el predeterminado de la lista.

Mostrando los resultados

Para vincular sus propiedades y errores a su archivo XAML; hazlo de la siguiente manera.

Resultado final

 

Conclusion

Plugin.ValidationRules es la manera más fácil de agregar la validación del lado del cliente de las propiedades del modelo de vista y notifica al usuario de cualquier error de validación al mostrarle el control que contiene los datos no válidos.

Recursos

Muchas gracias por leer esta publicación! 
Reglas de Validación para Xamarin y Windows
5 (100%) 3 votes

Otros

feedback

Te invito a dejar tu opinión en la caja de comentarios. Si quieres que hable de un tema en específico o que detalle un poco más algunos temas, déjame saber. Los temas más interesantes serán agregados en mi lista de publicaciones futuras.

¿Te gustan las publicaciones como esta? Entonces, suscribete y activa las notificaciones push para recibir actualizaciones. Nos vemos en la próxima!

2019-08-19T11:02:57-04:00

2
Dejame tus comentarios

avatar
1 Hilos de comentario
1 Respuestas de hilos
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
2 Comentarios de autores
Luis MatosAngelru Comentarios de autores recientes
  Suscribirte  
Nuevos Viejos Mas votados
Notificar de
Angelru
Invitado
Angelru

Hola,

Genial post y librería,

cuando utilizo ValidationUnit (me va validando una por una) como puedo obtener desde el viewmodel el error? es decir, como compruebo que propiedad es la que ha validado? tengo que ir una por una mirando cual tiene la propiedad en false y luego obtener el .Error?