Mejore la calidad de los datos mediante reglas de validación para .NET MAUI. Cualquier aplicación que acepte entradas de los usuarios debe asegurarse de que la entrada sea válida. Sin validación, un usuario puede proporcionar datos que hacen que la aplicación falle. La validación aplica reglas de negocio y evita que un atacante inyecte datos malintencionados.
Esta es una biblioteca que construi con un solo propósito: hacer nuestra vida más fácil trabajando con formularios. La diferencia entre este y las demas librerias es que puedo administrar toda la lógica desde mi modelo de vista, por lo que puedo reutilizar la lógica de validación que implemento allí.
Y ahora está disponible para usted en .NET MAUI.
Las reglas de validación comprueban que la entrada que un usuario introduce en un registro cumple los estándares especificados antes de que el usuario pueda guardar el registro. Una regla de validación puede contener la lógica que evalúa los datos en uno o más campos y devuelve un valor «True» o «False». Las reglas de validación también incluyen un mensaje de error que se muestra al usuario cuando la regla devuelve un valor «False» debido a un valor no válido.
Puede especificar el mensaje de error que se mostrará cuando una entrada falle en la validación y enlazarlo a la interfaz de usuario para mostrarlo. Plugin.ValidationRules implementar INotifyPropertyChanged
. Por lo tanto, no necesita preocuparse por la actualización de su interfaz de usuario.
¡Genial, ahora que tenemos una comprensión de las reglas de validación, podemos comenzar!
Configuración
Suponiendo que ya tenemos nuestro proyecto creado y ya sabemos cuáles son las reglas de validación, entonces podemos proceder a instalar el Plugin.ValidationRules para nuestra aplicación en 3 sencillos pasos:
- En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Administrar paquete NuGet…
- En la barra de búsqueda, escriba Plugin.ValidationRules o ValidationRules.
- Seleccione e instale ValidationRules en su proyecto.
Cómo usarlo
Reglas
La biblioteca tiene las reglas comunes que tiene cada proyecto, por lo que tal vez no necesite crear una regla, pero si lo hace, tiene la opción de hacerlo. En primer lugar, debe agregar las reglas que desea a su proyecto. Para eso, debe agregar una clase que derive de IValidationRule
<T> interfaz.
using Plugin.ValidationRules.Interfaces; namespace ValidationRulesTest.Validations { public class IsNotNullOrEmptyRule: IValidationRule<string> { public string ValidationMessage { get; set; } public bool Check(string value) { return !string.IsNullOrWhiteSpace(value); } } }
Propiedades y reglas
Una vez que tenga sus reglas, debe crear las propiedades que desea validar. Esas propiedades deben ser un Validable<T>
. Sus propiedades no necesitan implementarse INotifyPropertyChanged
interfaz. Plugin.ValidationRules tiene su implementación llamada ExtendedPropertyChanged. Entonces, el complemento hace el trabajo por ti.
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.
using Plugin.ValidationRules; namespace ValidationRulesTest.ViewModels { public class Example1ViewModel { public Example1ViewModel() { Name = Validator.Build<string>() .WithRule(new IsNotNullOrEmptyRule(), "A email is required.") .WithRule(new EmailRule(), "Email is not valid."); } public Validatable<string> Email{ get; set; } } }
Validación de propiedades
Para validar una propiedad, simplemente llame al método myProperty.Validate(). Puede hacerlo manualmente y usarlo en su ViewModel o código subyacente.
var isValidEmail = Email.Validate();
EXTRA: También puede agregar un EventToCommandBehavior y enlazarlo a un comando que llame al método validate.
<Entry Text="{Binding Email.Value, Mode=TwoWay}" > <Entry.Behaviors> <behaviors:EventToCommandBehavior EventName="Unfocused" Command="{Binding ValidateEmailCommand}" /> </Entry.Behaviors> </Entry>
Errores de validación
Si hay un error después de la validación, puede obtenerlo llamando a los errores de la lista _myProperty.Errores en su código o llamando a la propiedad _myProperty.Error para obtener el primer error o el predeterminado de la lista.
List<string> errors = Email.Errors; // List of errors string error = Email.Error; // First error bool hasErrors = Email.HasErrors;
Visualización de resultados
Para enlazar las propiedades y los errores al archivo XAML; hazlo de la siguiente manera.
<Entry Text="{Binding Email.Value, Mode=TwoWay}" /> <Label Text="{Binding Email.Error}" TextColor="Red" HorizontalTextAlignment="Center" />
Resultado final
Conclusión
Plugin.ValidationRules es la forma fácil de agregar la validación del lado del cliente de las propiedades del modelo de vista y notificar al usuario de cualquier error de validación mostrándole el control que contiene los datos no válidos.
Recursos
- Disponible en NuGet: Plugin.ValidationRules
- Repositorio: Validation Rules Plugin for .NET MAUI, Xamarin, and Windows
- Ejemplos: Plugin.ValidationRules Samples
- Lanzamientos: Releases · ValidationRulesPlugin