11/1/2010 22:40 El Bruno

[VS2010] HowTo: Validar relaciones entre clases con Layer Diagram

image

Buenas,

cuando he posteado sobre el Layer Diagram, siempre he asociado las capas de una solución con uno o mas proyectos. Pero una de las ventajas que tiene el Layer Diagram, es que permite además ser más específico y trabajar con elementos individuales de un proyecto por ejemplo con clases. Por ejemplo, si dentro de un mismo proyecto poseemos 3 clases con el siguiente código fuente en las mismas:

   1: public class DataLayer
   2: {
   3:   public void Foo()
   4:   { }
   5: }
   6: public class BusinessLayer
   7: {
   8:   public void Foo()
   9:   {
  10:     var d = new DataLayer();
  11:     d.Foo();
  12:   }
  13: }
  14: public class UILayer
  15: {
  16:   public void Foo()
  17:   {
  18:     var b = new BusinessLayer();
  19:     b.Foo();
  20:  }
  21: }

Es fácil ver como las relaciones van en sentido Data –> Business –> UI. Si agregamos un diagrama del Tipo Layer Diagram al proyecto, podemos hacer drag and drop de las clases sobre cada una de estas capas y ver en el diagrama que las relaciones están a nivel de clase y no de ensamblado; como muestra la siguiente imagen.

01

Si en este punto lanzamos una validación del diagrama, la misma irá correctamente, pero si modificamos la clase UI como en el siguiente ejemplo, donde la misma hace una referencia a la clase Data.

   1: public class UILayer
   2: {
   3:   public void Foo()
   4:   {
   5:     var b = new BusinessLayer();
   6:     b.Foo();
   7:  
   8:     var d = new DataLayer();
   9:   }
  10: }

Podremos ver en la validacion del Layer Diagram como nos marca un error de llamada y un error de referencia.

02

Asi que, ya sea a nivel de proyecto o a nivel de clases, el Layer Diagram nos ayudará a mantener nuestros proyectos bajo una arquitectura sólida.

 

Saludos @ Boadilla

El Bruno

Archivado en: ,,,
Comparte este post:

# re: [VS2010] HowTo: Validar relaciones entre clases con Layer Diagram

Monday, January 11, 2010 11:24 PM by Paulo Vila

Hola Bruno, como se ve esto cuando se usa MEF o unity, hay que mantener este código para que se cumpla esta regla aunque estemos usando un IoC?

# re: [VS2010] HowTo: Validar relaciones entre clases con Layer Diagram

Tuesday, January 12, 2010 11:42 AM by El Bruno

@Paulo buenas

pues con los inyectores no se lleva bien, ya que el análisis lo hace frente a las referencias con código compilado, y como los inyectores utilizan factorias (casi siempre?) para la creacion de objetos, no puede conocer el estado de las relaciones ... :S

Salu2

# [VSTS2010] Listado de Novedades (XII)

Tuesday, January 19, 2010 1:45 PM by El Bruno

Buenas, nuevo recopilatorio con los posts que voy escribiendo sobre las novedades de Visual Studio 2010