Problema con referencias circulares

05/05/2006 - 12:41 por Hector Patricio Gonzalez Palavicino | Informe spam
Hola



Estoy trabajando en un proyecto web con un equipo de trabajo en Visual Basic
.NET y que está subdivida en 3 capas y a su vez cada capa está divida en en
módulos y cada modulo a su vez representa un ensamblado. Trataré de
describirlo de una manera bastante sencilla



Framework

Lib X

Lib Y

.



Entidades Funcionales

Modulo A

Modulo B

.



Capa Datos

Modulo A

Referencia "Lib A" de Framework

Referencia "Lib B" de Framework

Class UnoA

Class DosA

.

Modulo B

Referencia "Lib A" de Framework

Referencia "Lib B" de Framework

Class UnoA

Class DosA

.

.

Capa Negocios

Modulo A

Referencia "Lib A" de Framework

Referencia "Lib B" de Framework

Referencia "Modulo B" de Negocio

Class UnoA

Class DosA

Modulo B

Referencia "Lib A" de Framework

Referencia "Lib B" de Framework

Referencia "Modulo A" de Negocio

Class UnoB

Class DosB

.

Presentacion

Sitio Web

Referencia "Lib A" de Framework

Referencia "Lib B" de Framework

Referencia "Modulo A" de Negocio

Referencia "Modulo B" de Negocio

.



Todo estaba saliendo de maravilla, mientras los modulos no estaban
interactuando entre si.



El problema ahora es el siguiente



La Clase de negocio del Modulo B "DosB", necesita verificar
cierta regla de negocio que se encuentra en el Modulo A y a su vez la Clase
UnoA del Modulo A necesita realizar comprobaciones que se encuentran en el
Modulo B, el tema es que como Visual Basic no permite referencias
circulares.



Como Resolver el dilema pienso que:



a)Se podria tratar de subdividir en mas subproyectos

Es arduo pero podria ser una solucion temporal, pero si
nos vuelve a ocurrir. no lo quiero ni imaginar

b)Prodriamos crear referencias tardias vía y usar quizas
Reflection

Pero eso supone muchas restricciones a nivel de
configuracion de la Aplicacion y rendimiento.



entonces ¿Existe otra manera de resolver el problema?



Agradezco desde ya la molestia que se han tomado siquiera para leer esto y
si podeis darme alguna idea de cómo enfrentar el problema os lo agradecería.



Héctor Gonzalez
 

Leer las respuestas

#1 Alberto Poblacion
05/05/2006 - 13:35 | Informe spam
"Hector Patricio Gonzalez Palavicino" wrote in message
news:uuC%
entonces ¿Existe otra manera de resolver el problema?



Existe otra, bastante molesta, que consiste en compilar desde linea de
comandos, prescindiendo del Visual Studio.

En mi opinión, lo mejor es subdividir el proyecto y hacer un módulo C al
que llamen A y B. Si el diseño está bien pensado, debería tener froma de
árbol y no contener referencias circulares. De no ser así, quiere decir que
no está bien organizada la estructura de módulos.

Lo de usar Reflection funcionaría, pero es una chapuza bastante grande,
y no permite detectar hasta el momento de la ejecución múltiples errores que
con una buena organización del proyecto se detectarían en tiempo de
compilación.

Preguntas similares