Posteado por: martinmelchior | agosto 7, 2007

Validation Application Block


Este es uno de los nuevos AB disponibles en el release 3.1 de mayo de EntLib. Este nuevo AB nos provee unas librerías de clases denominadas validators las cuáles nos proveen el código necesario para validar los tipos de datos de .NET Framework. Además existen algunos validators especiales como el AndCompositeValidator, OrCompositeValidaror cada uno de los cuáles posee un comportamiento específico.

El AndCompositeValidator agrega una serie de validators y TODOS los validators deberán ser TRUE para que el AndCompositeValidator este Ok. (Ej. Apellido no vacio Y el largo del Apellido entre 1 y 30 caracteres).

El OrCompositeValidator también estará compuesto por una serie de validators pero solo uno de estos deberá retornar TRUE para que el OrCompositeValidator este Ok. (Ej. Apellido no vacio O largo del Apellido > 1 caracter).

Por otro lado el VAB nos permite agrupar validaciones en Reglas, de esta forma podremos tener diferentes reglas definidas para una misma entidad y aplicar una regla u otra. A dichas reglas las podemos crear por 3 caminos diferentes: Usando configuraciones, atributos o vía código.

Por otro lado el VAB posee una serie de adaptadores que permiten usarlo desde diferentes tecnologías como ASP.NET, Windows Form, WCF.

Un ejemplo sencillo:

using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;
public class Customer
{
[StringLengthValidator(0, 20)]
public string CustomerName;

public Customer(string customerName)
{
this.CustomerName = customerName;
}
}

public class MyExample
{
public static void Main()
{
Customer myCustomer = new Customer(“A name that is too long”);
ValidationResults r = Validation.Validate(myCustomer);
if (!r.IsValid)
{
throw new InvalidOperationException(“Validation error found.”);
}
}
}

Referencias a tener en cuenta al utilizar VAB
· Microsoft.Practices.EnterpriseLibrary.Common.dll
· Microsoft.Practices.ObjectBuilder.dll
· Microsoft.Practices.EnterpriseLibrary.Validation.dll

y dependiendo de que tecnología estamos utilizando referenciaremos a:

· Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinForms.dll
· Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet.dll
· Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF.dll

por último para no utilizar el namespace en forma completa en nuestra aplicación escribimos los siguientes usings.

using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

Creo que una de las características más interesante de este nuevo AB es que por un lado nos permite mantener nuestras validaciones en un archivo separado, lo cuál nos ayuda a no tener que compilar las clases que representan nuestras entidades si necesitamos agregar una nueva validación. Por otro lado, también nos permite localizar nuestros mensajes de error, lo cuál es una gran ventaja para aquellos que necesitan mostrar mensajes en diferentes idiomas.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: