¡Plugin.ValidationRules 1.2 esta aqui!

Sobre el tema:

Contenido

En esta ocasión quiero presentarlas la ultima version estable de Plugin.ValidationRules 1.2. Esta versión principal ofrece muchas mejoras de calidad y nuevas características añadidas, incluyendo ValueChanged , ValidateCommand , ValueFormatter, entre otras cosas.

Quiero extender un gran agradecimiento a todas las personas que usan esta libraría, y por los buenos comentarios que ha recibido. ¡Ustedes son increíble!

Luis Matos

En los últimos días he estado actualizando las librerías y extensiones de Visual Studio que cree tiempo atrás, en esta ocasión nos enfocaremos en en Plugin.ValidationRules.

¡Comencemos!

Actualización a 1.2

He actualizado algunos de los ejemplos y he agregado alguno mas para que puedan testear o ver mas o menos como funcionan las nuevas características. Realmente no hay ningún cambio brusco, si actualizas ahora, todo debería seguirte funcionando igual.

Nuevas características

Validatable Objects

  • Ahora toma ValidationRules por el constructor.
  • Ahora implementa el evento ValueChanged.
  • Ahora implementa el comando ValidateCommand – por defecto esta unido al metodo Validate() de su propiedad.
  • Ahora implementa ValueFormatter para dar formato a las entradas de los usuarios sin tener que escribir XAML extensions.
public class MyViewModel
{
        public MyViewModel()
        {
            Phone = new Validatable<string>(new IsNotNullOrEmptyRule());
            Phone.ValueChanged += (o, e) => { /* Do something here */ };
            
            Phone.ValueFormatter = new MaskFormatter("X (XXX) XXX-XXXX");
        }
        public Validatable<string> Phone { get; set; }
}
...
       <Entry Text="{Binding Phone.Value, Mode=TwoWay}">
            <Entry.Behaviors>
                <bx:EventToCommandBehavior Command="{Binding Phone.ValidateCommand}" EventName="Unfocused" />
            </Entry.Behaviors>
        </Entry>
...

Formatter por defecto

Ahora puede formatear sus propiedades desde sus ViewModels de una manera fácil y sencilla. A continuación la lista de los Formatters por defecto en esta versión:

  • BoolNegationFormatter
  • MaskFormatter
  • StringCaseFormatter
  • StringNumericFormatter

ValidationRules por defecto

Así es, muchos lo pediste por mucho tiempo. A continuación la lista de las reglas por defecto en esta versión:

  • CrediCardRule
  • EmailRule
  • EmptyRule
  • EnumRule
  • EqualRule
  • GreaterThanOrEqualRule
  • InclusiveBetweenRule
  • LenghtRule
  • LessThanOrEqualRule
  • LessThanRule
  • NotEmptyRule
  • NotEqualRule
  • NotNullRule
  • RegularExpressionRule

Mappers

En el #DotNetConf pasado me preguntasteis sobre los mappers, y yo les respondí que tenían que hacerlo manual, ¡PERO NO MAS!

  • Ahora puedes usar la interfaz IMapperValidator y crear tu propio mapeador en tu validador de modelos (ValidatorModel).
  • Ahora puedes usar el método de extensión MapValidator<Model, Validator>() para auto mapear tus validadores de modelos.
public class UserValidator : IMapperValidator<User>
{
        ...

        public User Map()
        {
            // Simple Manual Mapper
            var manualMapperUser = new User
            {
                Name = this.Name.Value,
                LastName = this.LastName.Value,
                Email = this.Email.Value
            };

            return manualMapperUser;
        }
}

/* OR */
...
private void MappingTestMethod()
{
       // Extension Mapper with simple Model
       var extMapperUser = User.MapValidator<User, UserValidator>();
}
...

⚠ Nota: En las pruebas de velocidad de los mapper tuvimos los siguientes resultados:

* Manual Mapper: 0.002 seg.
* Extension Mapper: 0.013 seg.

La diferencia el usuario no la notará. La velocidad o perfomance dependerá de tus modelos y es bueno tener estos datos en cuenta.

Recursos, Documentación, Ejemplos y Vídeos

Consulta las notas de los cambios de la version para obtener todos los detalles sobre lo nuevo en la version. Tambien puedes revisar la documentación inicial y la complementaria que son muy util.

No creo que sea necesario una nueva documentación, ya que las nuevas características solo sirven de soporte a lo que ya se había planteado.

El ejemplo de Xamarin.Forms lo puedes revisar desde hoy y esta actualizado con la version Plugin.ValidationRules 1.2.

Videos

Watch the video

Échale un vistazo a esta presentación como partida inicial para entender que hace el plugin. La misma la puedes encontrar en YouTube.

Conclusión

La verdad es que estoy muy contento con esta actualización, y es que una vez empiezas a utilizar el plugin se te hace muy difícil cambiarlo o tratar de utilizar otra cosa.

Actualicen el plugin a 1.2 a través del Administrador de paquetes NuGet. ¡Hazme saber cómo vas! Y si tiene algún problema, por favor crea un Issue o escríbeme por twitter @luismatosluna.

¿Qué opinas de este contenido?
 
Luis Matos

Luis Matos

I help professionals and companies to create value solutions. I am a Systems Engineer, blockchain executive, and international mobile application speaker. Founder of the Malla Consulting Agency and several international technology communities.
Suscribirte
Notificar de
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x

Buscar en el sitio