
Buenas,
en todas las demos y eventos de Visual Studio 2010, siempre comento lo útil que es un diagrama del tipo Layer Diagram para validar los componentes de una solución desde el punto de vista de las relaciones entre las capas de la misma, y también siempre comento que es posible realizar esta validación en una compilación de TFS Build. El siguiente tutorial demuestra como configurar un build para que se realice esta validación.
Tutorial
1. Partiremos de una solución que posea varios proyectos, basados en un esquema de 3 capas: presentación, capa de negocios y capa de datos. Además de una capa de entidades comun a todos los elementos.
2. Con esta solución crearemos un diagrama del tipo Layered Diagram y defineremos las siguientes capas y relaciónes.
3. Una vez configurado el diagrama, validamos la arquitectura del mismo, desplegando el menú contextual y seleccionando la opción Validate Architecture.
4. El resultado debe ser correcto y se puede ver en la ventana de Output de Visual Studio.

5. Para configurar la validación de la arquitectura en cada build, seleccionamos el proyecto de modelado y en sus propiedades cambiamos el valor de Validate Architecture = True.
6. A continuación crearemos un nuevo Build. Para esto seleccionado el nodo Builds en el Team Explorer, desplegamos el menú contextual y seleccionamos la opción New Build Definition.
7. Dentro de la definición del build, dejamos todas las opciones por defecto del mismo, seleccionado nuestra solución y los tests correspondientes.
8. Si bien la opción del paso 5 ya fuerza la validación de los diagramas en cada compilación, otra opción es utilizar los argumentos de MSBuild para forzar esta validación.
9. En la sección Advanced del proceso del Build, agregamos un nuevo argumento a la lista de MSBuild para forzar la validación con los diagramas de arquitectura: /p:ValidateArchitecture=true
10. Una vez que tenemos todo configurado, lanzamos un nuevo build para ver el resultado del mismo, que modificaremos para que sea correcto.
11. Para forzar un error de validación, desde la capa de presentación, agregaré una referencia a la capa de datos.
12. Y además agregaré código que invoque a las funcionalidades de la capa de datos desde la capa de presentación.
1: private void Form1_Load(object sender, EventArgs e)
2: {
3: CustomerDataAccess.CustomerManager d =
4: new CustomerDataAccess.CustomerManager();
5: d.AddCustomer( new CustomerEntities.Customer());
6: }
Si hemos configurado la validación para que se realice en el build como se especifica en el paso 5, podremos ver el error en la compilación local.
13. Haremos checkin de los cambios.
14. Lanzamos nuevamente un build y podremos ver dentro del resultado del mismo, el error correspondiente a la validación de arquitectura.
Asi que después de estos pocos pasos ya no tenemos excusas para no aplicar nuevas reglas de validación a nuestros proyectos, relacionados con los diagramas de arquitectura.
Saludos @ Home
El Bruno