Reglas de validación para .NET MAUI

Table of Contents

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:

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Administrar paquete NuGet…
  2. En la barra de búsqueda, escriba Plugin.ValidationRules ValidationRules.
  3. 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

Share this content!

Facebook
Twitter
LinkedIn
Telegram
WhatsApp