Validation Application Block Enterprise Library 3.0

Siguiendo con la nueva versión de Enterprise Library despues de mirar las mejoras de configuración, me he puesto a mirar Validation Application Block y me ha vuelto a sorprender gratamente. Primero porque utiliza atributos para validar y segundo proque se utiliza de forma natural y sencilla.

Validation Application Block viene con un numero de  ValidatorAttributes  que podemos utilizar para decorar nuestras clases. El número de ValidatorAttributes es amplio aunque podemos incluso crear nuestros porpios validadores.

Un ejemplo sencillo de su utilización seria el siguiente trozo de codigo, donde creo una clase cliente con tres atributos a los cuales les indico mediante ValidatorAttributes, cuales quiero que sean sus validaciones.

 

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

namespace Prueba1
{
    public class Cliente
    {
        private string _nombre;

        [NotNullValidator]
        [StringLengthValidator(1, 200)]
        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }
        private string _telefono;

        [RegexValidator(@"(d{3}) d{3}-d{4}")]
        public string Telefono
        {
            get { return _telefono; }
            set { _telefono = value; }
        }

        private int _edad;
        [Int32RangeValidator(23,50)]
        public int Edad
        {
            get { return _edad; }
            set { _edad = value; }
        }
	
	
    }
}
 

Como podeis ver es una forma muy sencilla. Ahora como valido una instancia de Cliente?

Tan sencillo como utilizar Validation Facade Class

	
ValidationResults results = Validation.Validate(cliente);

if (!results.IsValid)
{
        foreach (ValidationResult result in results)
        Console.WriteLine(string.Format("Key: {0},Message: {1}", result.Key.ToString(), result.Message));

    Console.ReadLine();
}

 

Espero que os haya gustado

2 comentarios sobre “Validation Application Block Enterprise Library 3.0”

  1. Saludos Oskar…

    Realmente me estoy siguiendo la pista de EntLib 3.1 y me parece increible todo lo que realiza y mas los nuevos conceptos que trae…

    Saludos de nuevo y esta muy bien el post…

  2. estoy trabajando en un proyecto utilizando asp.net ajax framework 3.5 en las referencias tengo lo siguiente:

    …validation.validators;
    [NotNullValidator]
    ….
    [RegexValidator(@»(d{3}) d{3}-d{4}»)]
    ….
    private int _edad;
    [Int32RangeValidator(23,50)]
    public int Edad
    {
    get { return _edad; }
    set { _edad = value; }
    }

    Me marca error en Int32RangeValidator, me dice que falta un using o una referencia.
    He observado en el explorador de objetos y no me aparece el atributo Int32RangeValidator,
    he probado con todas las versiones de Enterprise Library 3.0 version de abril, Mayo, 3.1,4.1,
    y en ninguna de las versiones me aparece dicho atributo.
    Ojala me puedas apoyar.
    mi correo es vallejosantes@gmail.com

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *