Compartir a través de


Cómo: Validar código C y C++ con diagramas de capas

Este Feature Pack de Visual Studio 2010 permite que se apliquen las restricciones arquitectónicas en el código de C y C++ de Visual Studio 2010 Ultimate a medida que el código evoluciona. Para realizar esta tarea, ejecute la validación de capas con regularidad para comparar las dependencias del código con las dependencias en un diagrama de capas. Un diagrama de capas describe la arquitectura del sistema y organiza los espacios de nombres, los proyectos y otros artefactos en grupos lógicos, abstractos o capas. Estas capas describen los componentes principales del sistema o las tareas que realizan estos artefactos. Para crear un diagrama de capas para código de C o C++, siga los mismos pasos que para los del código .NET. Para obtener más información, vea Cómo: Crear diagramas de capas desde artefactos y Paquetes de características de Visual Studio.

Nota

Debe instalar un Feature Pack de Visual Studio 2010 para usar esta característica.

En los archivos binarios, la validación de capa se realiza solo en el nivel binario. Aunque puede vincular otros tipos de artefactos a un diagrama de capas, la validación de capa solo analiza las dependencias en el nivel binario.

La validación de capas también puede ayudarle con las siguientes tareas:

  • Ver las diferencias entre el código existente y su diseño previsto.

  • Encontrar código que no está organizado tal y como se pensaba o que tiene dependencias no deseadas.

  • Encontrar dependencias que podrían verse afectadas por los cambios propuestos.

    Por ejemplo, puede modificar el diagrama de capas para mostrar los posibles cambios de la arquitectura y validar el código para ver las dependencias afectadas.

  • Refactorizar o migrar el código a un diseño diferente.

    Encontrar código o dependencias que todavía requieran trabajo al cambiar el código a una arquitectura diferente.

En este tema se describen requisitos que se deben cumplir antes de ejecutar la validación de capa en el código de C o C++.

Requisitos

  • Asegúrese de que Visual C# está instalado con Visual Studio.

  • Crear un proyecto de modelado con un diagrama de capas

  • Para validar las dependencias de archivos binarios, agregue los archivos binarios al proyecto de modelado

  • Para validar proyectos de C y C++ en Team Foundation Build, vea Requisitos de Team Foundation Build.

Después de cumplir estos requisitos, puede seguir los mismos pasos que para el código .NET. Para consultar estos pasos, vea Cómo: Validar código .NET con diagramas de capas. Para conocer los problemas relacionados con los proyectos de modelado y los diagramas de capas creados a partir de código de C o C++, vea Solución de problemas.

Crear un proyecto de modelado con un diagrama de capas

La solución de Visual Studio debe incluir un proyecto de modelado que contenga un diagrama de capas.

Para crear un proyecto de modelado

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nodo de solución de nivel superior, elija Agregar y, a continuación, haga clic en Nuevo proyecto.

  2. En el cuadro de diálogo Agregar nuevo proyecto, en Plantillas instaladas, haga clic en Proyectos de modelado y, a continuación, haga clic en Proyecto de modelado.

  3. Cambie el nombre del proyecto y, a continuación, haga clic en Aceptar.

    Visual Studio agrega un nuevo proyecto de modelado a la solución.

  4. Asegúrese de guardar el proyecto de modelado.

Para crear un diagrama de capas

  1. En el menú Arquitectura, haga clic en Nuevo diagrama y, a continuación, en el cuadro de diálogo Agregar nuevo diagrama, haga clic en Diagrama de capas.

  2. Cambie el nombre del diagrama, seleccione el proyecto de modelado y, a continuación, haga clic en Aceptar.

    Visual Studio agrega un diagrama de capas en blanco al proyecto de modelado y, a continuación, muestra el diagrama.

  3. En el Explorador de soluciones, arrastre un proyecto de C o C++ a la superficie del diagrama de capas.

    -O bien-

    En el Explorador de arquitectura, arrastre al menos un binario a la superficie del diagrama de capas.

    Al realizar cualquiera de estos pasos, también se agregarán automáticamente los siguientes elementos al proyecto de modelado:

    • Referencias al proyecto de modelado.

    • Un elemento <Import> para el archivo de proyecto de modelado (.modelproj) que importa un archivo .targets personalizado y habilita la validación de capa del código de C o C++.

  4. Defina otras capas, vincule artefactos a ellas y describa las dependencias previstas entre esos artefactos.

    Para obtener más información, vea Cómo: Crear diagramas de capas desde artefactos y Diagrama de capas: Instrucciones.

  5. Asegúrese de guardar el proyecto de modelado.

    Nota importanteImportante

    Si guarda sólo el diagrama de capas, pero no el proyecto de modelado y, a continuación, cierra la solución, debe agregar las referencias de proyecto de C o C++, e importar manualmente el archivo .targets personalizado correspondiente al proyecto de modelado. Para obtener más información, vea Solución de problemas.

Nota importanteImportante

Al crear un diagrama de capas a partir de código de C o C++ en Visual Studio 2010 Ultimate en Windows XP o Windows 2003, se usa una ruta de acceso absoluta para crear la entrada en el archivo de proyecto de modelado (.modelproj) para importar el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets personalizado. Esto podría producir problemas si intenta abrir la solución en Windows 7, Windows Vista o Windows Server 2008. Si ejecuta Visual Studio 2010 Ultimate en Windows XP o Windows 2003, no puede abrir diagramas de capas creados en Visual Studio 2010 Ultimate en Windows 7, Windows Vista o Windows Server 2008. Para resolver este problema, vea Solución de problemas.

Agregar archivos binarios al proyecto de modelado

Si desea validar las dependencias de archivos binarios, debe agregar los archivos binarios que desea validar al proyecto de modelado manualmente. No se agregan automáticamente al arrastrarlos al diagrama de capas.

Para agregar archivos binarios al proyecto de modelado

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de modelado y, a continuación, haga clic en Agregar elemento existente.

  2. En el cuadro de diálogo Agregar elemento existente, busque los archivos binarios, selecciónelos y, a continuación, haga clic en Aceptar.

    Los archivos binarios aparecen en el proyecto de modelado.

  3. En el Explorador de soluciones, haga clic en un archivo binario que agregó y, a continuación, presione F4 para abrir la ventana Propiedades.

  4. En cada archivo binario, establezca la propiedad Acción de compilación en Validar.

Requisitos de Team Foundation Build

Para validar proyectos de C y C++ en el servidor Team Foundation Build, debe seguir estos pasos:

  1. Para compilar los proyectos, asegúrese de que está instalado lo siguiente en el servidor:

    SugerenciaSugerencia

    Si Visual Studio 2010 Ultimate está instalado en el servidor, puede instalar el Feature Pack en el servidor en lugar de seguir los pasos 2 y 3. De lo contrario, si no existe la carpeta …\<NombreDeFeaturePackDeVisualStudio>\<NúmeroDeVersiónDeFeaturePackDeVisualStudio> en el servidor, quizás tenga que crearla. A menos que haya instalado el Feature Pack en una ubicación diferente, %LocalAppData% es normalmente DriveName:\Users\nombreDeUsuario\AppData\Local. En Windows XP o Windows 2003, use %AppData% en lugar de %LocalAppData%.

  2. Si tiene instalado el Feature Pack de visualización y modelado de Visual Studio 2010:

    Copie el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets de la siguiente ubicación de instalación de Feature Pack en la misma ubicación en el servidor:

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<NombreDeFeaturePackDeVisualStudio>\1.0

    Si tiene instalado el Feature Pack 2 de Visual Studio 2010:

    Copie el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets de la siguiente ubicación de instalación de Feature Pack:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<NombreDeFeaturePackDeVisualStudio>\<NúmeroDeVersiónDeFeaturePackDeVisualStudio>

    en la siguiente ubicación del servidor:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling\<NombreDeFeaturePackDeVisualStudio>\1.0

  3. Copie el archivo Microsoft.VisualStudio.Progression.NativeProvider.dll de una de las siguientes ubicaciones de instalación de Feature Pack, dependiendo de la versión de Feature Pack que haya instalado:

    • Feature Pack de visualización y modelado de Visual Studio 2010: %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<NombreDeFeaturePackDeVisualStudio>\1.0

    • Feature Pack 2 de Visual Studio 2010: …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<NombreDeFeaturePackDeVisualStudio>\<NúmeroDeVersiónDeFeaturePackDeVisualStudio>

    en la siguiente ubicación del servidor:

    …\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Providers

Solución de problemas

Si guarda sólo el diagrama de capas, pero no el proyecto de modelado y, a continuación, cierra la solución, debe agregar las referencias de proyecto de C o C++, e importar manualmente el archivo .targets personalizado correspondiente al proyecto de modelado siguiendo estos pasos:

Para

Siga estos pasos

Agregar las referencias de proyecto de C o C++

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto de modelado que contiene el diagrama de capas y, a continuación, haga clic en Agregar referencia.

    -O bien-

    En el proyecto de modelado, haga clic con el botón secundario en la carpeta Referencias de capa y, a continuación, haga clic en Agregar referencia.

  2. En el cuadro de diálogo Agregar referencia, seleccione los proyectos que desee validar y, a continuación, haga clic en Aceptar.

    Las referencias de proyecto aparecen en la carpeta Referencias de capa.

Importar el archivo .targets personalizado

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nodo de proyecto de modelado y, a continuación, haga clic en Descargar el proyecto.

  2. Haga clic con el botón secundario en el nodo de proyecto de modelado y, a continuación, haga clic en Editar NombreDeProyectoDeModelado.modelproj.

  3. En el archivo NombreDeProyectoDeModelado.modelproj, busque el siguiente elemento <Import>:

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" />

    Bajo este <Import>, agregue el siguiente elemento <Import>:

    Si tiene instalado el Feature Pack de visualización y modelado de Visual Studio 2010:

    <Import Project="$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

    NotaNota
    %LocalAppData% está normalmente en DriveName:\Users\nombreDeUsuario\AppData\Local\.En Windows XP o Windows 2003, use %AppData% en lugar de %LocalAppData%.Si el Feature Pack se instaló en una ubicación diferente, uso esa otra ubicación en su lugar.También puede copiar el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets de la ubicación de instalación del Feature Pack en la carpeta que contiene el proyecto de modelado.

    Si tiene instalado el Feature Pack 2 de Visual Studio 2010:

    <Import Project="…$\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

  4. Guarde el archivo .modelproj y ciérrelo.

  5. Haga clic con el botón secundario en el nodo del proyecto de modelado y, a continuación, haga clic en Volver a cargar el proyecto.

Al crear un diagrama de capas a partir de código de C o C++ en Visual Studio 2010 Ultimate en Windows XP o Windows 2003, se usa una ruta de acceso absoluta para crear la entrada en el archivo de proyecto de modelado (.modelproj) para importar el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets personalizado. Esto podría producir problemas si intenta abrir la solución en Windows 7, Windows Vista o Windows Server 2008. Si ejecuta Visual Studio 2010 Ultimate en Windows XP o Windows 2003, no puede abrir diagramas de capas creados en Visual Studio 2010 Ultimate en Windows 7, Windows Vista o Windows Server 2008.

Para resolver este problema, use una de estas soluciones alternativas:

  1. Copie el archivo Microsoft.VisualStudio.Progression.NativeProvider.targets de la siguiente ubicación en la carpeta que contiene el proyecto de modelado:

    Si tiene instalado el Feature Pack de visualización y modelado de Visual Studio 2010:

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<NombreDeFeaturePackDeVisualStudio>\1.0

    SugerenciaSugerencia

    A menos que haya instalado el Feature Pack en una ubicación diferente, %LocalAppData% es normalmente DriveName:\Users\nombreDeUsuario\AppData\Local. En Windows XP o Windows 2003, use %AppData% en lugar de %LocalAppData%.

    Si tiene instalado el Feature Pack 2 de Visual Studio 2010:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<NombreDeFeaturePackDeVisualStudio>\<NúmeroDeVersiónDeFeaturePackDeVisualStudio>

  2. En el archivo .modelproj, actualice el elemento <Import> correspondiente al archivo .targets; para ello, reemplace la ruta de acceso absoluta con una ruta de acceso relativa del archivo .targets. Por ejemplo:

    <Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    
    Nota importanteImportante

    Si usa el control de versiones, debe comprobar el archivo .targets en el control de versiones.

-O bien-

  1. Cree una nueva variable de entorno que representa la ruta de instalación del archivo Microsoft.VisualStudio.Progression.NativeProvider.dll.

  2. Use esta variable para importar el archivo .targets.

    Por ejemplo, puede crear una variable de entorno como "RutaDeDestinoDeProveedorNativo" que señala a la ubicación donde se encuentra el archivo .targets. A continuación, puede actualizar el elemento <Import> como sigue:

    <Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    
    Nota importanteImportante

    Asegúrese de establecer correctamente la variable de entorno en sistemas operativos diferentes.

Vea también

Tareas

Cómo: Crear diagramas de capas desde artefactos

Cómo: Validar código .NET con diagramas de capas

Conceptos

Diagrama de capas: Instrucciones

Historial de cambios

Fecha

Historial

Motivo

Diciembre de 2010

Actualizado para el Feature Pack 2 de Visual Studio 2010.

Mejora de la información.