Tete

Solo disponible en BuenasTareas
  • Páginas : 6 (1478 palabras )
  • Descarga(s) : 4
  • Publicado : 5 de marzo de 2010
Leer documento completo
Vista previa del texto
Utilización de Validaciones (DataAnnotation, Xval, Csla)

Autor: Juan Carlos Saavedra

Versión: 0.2

Guía Rápida para establecer validaciones.

Capa de Negocio

• Adicionar una referencia de las dll: System.ComponentMode.DataAnnotations, Utpl.Syllabus.Framework.Validaciones

• Crear los DataAnnotation personalizados para la clase de negocio.

1. Creamos una CarpetaValidaciones, y adicionamos un archivo de clase con el nombre Validaciones.cs.

2. Dentro del archivo de validaciones de la clase creamos las validaciones para cada una de las propiedades que se deseen evaluar:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
public class Attribute : AbstractValidacionCompuesta
{
public Attribute ()
:base()
{
//Nombre Amigable
NombreAmigable = Textos.;
}

public override void AgregarValidacionesInternas()
{
//Adicionar el listado de validadores que posee la propiedad
ListadoValidacionesInternas.Add(new RequeridoAttribute());
.
.
.
}
}

Para crear validaciones personalizadas debemos crear una clase que herede desde la clase“AbstractValidacionCompuesta”

El nombre de la clase del DataAnonotation debe colocarse un sufijo “Attribute”.

Existe una lista de validadores ya creados, Ver Listado de Validadores.

3. Adicionar el DataAnnotation, al nombre de la propiedad de la clase de negocios:

// ....
public static PropertyInfo DescripcionProperty = RegisterProperty(o => o.Nombre, "Descripcion");
///
///....
///
[]
public string Nombre
{
get { return GetProperty(DescripcionProperty); }
set { SetProperty(DescripcionProperty, value); }
}

Colocamos el nombre del DataAnnotation Personalizado arriba de la propiedad, aquí ya no hay la necesidad de colocar el sufijo “Attribute”.

4. Debemos colocar en el método para adicionar reglas a la clase CSLA, una llamada a la clasebase “base.AddBusinessRules();”, para generar validaciones a partir de DataAnnotation

#region Validation Rules

protected override void AddBusinessRules()
{
base.AddBusinessRules();
}

#endregion

Capa de Usuario

• Adicionar una referencia de la dll: Utpl.Syllabus.Framework.Validaciones

• En el archivo .aspx adicionamos una referencia al objeto manejador devalidaciones y creamos un control.

1. Debemos asociar un control con la propiedad que manipula, para lo cual utilizamos propiedades personalizadas en los controles coolite; con el uso de la etiqueta “”, el nombre de la propiedad personalizada siempre debe ser “PropiedadObjeto”, el valor de la propiedad personalizada será “Prefijo.NombrePropiedad”, una combinación de un prefijo con el nombre de lapropiedad. El prefijo por defecto es el nombre del tipo de la clase.



Ejemplo: Asociar al control ComboBox del listado de Estados la propiedad EstadoId del la Clase UnidadEnseñanzaCriteria.






• En el codebehind, generamos las validaciones de los tipos de clases que necesitamos, esta generación se la debe hacer en el método. “Page_Load”, de unapágina.

.GenerarValidaciones(typeof());

• Ej. Si nuestro control se llama “ManejadorValidaciones”. Y deseamos agregar validaciones para las clases “Asignatura”, “UnidadEnseñanzaAdministradores” y “UnidadEnseñanzaCompetencias”; el código seria:

ManejadorValidaciones.GenerarValidaciones(typeof(Asignatura));
ManejadorValidaciones.GenerarValidaciones(typeof(UnidadEnseñanzaAdministradores));ManejadorValidaciones.GenerarValidaciones(typeof(UnidadEnseñanzaCompetencias));

Detalles de Implementación

Ejemplos

Aplicar un DA personalizado que encapsula varias validaciones. (NombreUnidadEnseñanza).

// Nombre
private static PropertyInfo NombreProperty = RegisterProperty(o => o.Nombre, DAMensajes.NombreUnidadEnseñanza);
///
/// Nombre de la Unidad Enseñanza
///...
tracking img