Modelando sitios web y código nativo

Publicación del inglés original : 17 de junio de 2010 a la 1:35 PM por Somasegar

He hablado anteriormente sobre las Herramientas de arquitectura en Visual Studio 2010. Estas herramientas ofrecen una manera fantástica de comprender una aplicación existente, diseñan nueva funcionalidad y validan una implementación con respecto a las reglas y restricciones de arquitectura.

Recientemente, anunciamos la disponibilidad del Paquete de funciones de visualización y modelado (Visualization and Modeling Feature Pack) (en inglés)  para los suscriptores de MSDN, que complementa las herramientas de arquitectura de Visual Studio 2010 agregando compatibilidad para:

  • Visualización de código de C o C++
  • Visualización de sitios web
  • Generación del diagrama de UML mejorada
  • Generación de código de diagramas UML
  • Importación de XMI 2.1
  • Validación de arquitectura de extensibilidad

Los desarrolladores a menudo se enfrentan al reto de intentar comprender qué impacto tendrá en una parte de la aplicación cambiar otra parte. Este tipo de información es vital para controlar el riesgo inherente asociado a la modificación de código.

El desarrollo de web de C o C++ supone el mismo conjunto de riesgos con alguna complejidad adicional única. El desarrollo de C o C++ requiere comprender las dependencias entre archivos #include. El desarrollo web agrega una capa adicional de complejidad al presentar el contenido de los elementos como las páginas y controles.

Hoy voy a entrar en más profundidad en el código nativo y las características de visualización de sitios web en el paquete de funciones.

Visualización de código de C o C++

Si dispone de los archivos fuente de la aplicación de C o C++, puede utilizar el menú Generate Dependency Graph (Generar gráfico de dependencia) para ver las dependencias estáticas que existen entre los distintos archivos binarios. A continuación muestro el diagrama DGML inicial creado para una aplicación de visor de fotos:

A continuación, puedo profundizar expandiendo los nodos para identificar llamadas específicas que crean esas dependencias. Después puedo expandir los nodos para encontrar una dependencia entre el constructor de clase CWebImageManager en la aplicación PhotoBrowser y la función WinHttpOpen en WinHttp.dll.

Otra excelente manera de ver las dependencias estáticas entre varios de los archivos binarios es simplemente arrastrándolos y colocándolos desde, por ejemplo, la ventana del explorador de Windows a un diagrama DGML vacío.

La característica de empaquetado también admite la visualización de las dependencias que existen entre archivos #include. Puede ver las dependencias entre todos los archivos de origen y el encabezado de la solución seleccionando 'By Include File' (Por archivos include) en el menú 'Generate Dependency Graph' (Generar gráfico de dependencias), o puede optar por ver las dependencias de un archivo específico al invocar la función "Generate Graph of Include Files" (Generar gráficos de archivos include) desde el editor de código fuente.

La siguiente imagen muestra las dependencias directas para el archivo PhotoViewerView.cpp. Puede utilizar el modo 'Neighborhood Browse' (Examinar el entorno) para explorar en profundidad y descubrir todas las dependencias.

 

También puede explorar los proyectos de C o C++ mediante el Architecture Explorer (Explorador de arquitectura), similar a como lo haría para proyectos administrados o aprovechar las ventajas de la validación de la dependencia de nivel de proyecto a través de los diagramas de capa.

Visualización de sitios web

Si utiliza proyectos de aplicación web para Visual Studio, sitios web, o proyectos de ASP.NET MVC, este paquete de funciones presenta la visualización estructural y de dependencia enriquecida para la aplicación y puede mejorar drásticamente la capacidad para responder la pregunta "¿Qué partes de la aplicación se ven afectadas cuando se modifica este código?"

Para visualizar la estructura del sitio web y las dependencias, utilice el menú 'Generate Dependency Graph' (Generar gráfico de dependencia):

Genera el siguiente documento DGML:

El gráfico resultante contiene los nodos de los distintos elementos estructurales de la aplicación web ASP.NET, es decir:

  • Páginas web ASP.NET (archivos .aspx)
  • Controles personalizados (archivos .ascx)
  • Páginas principales (archivos. master)
  • Carpetas del sitio web
  • Archivos de aplicación
  • Código subyacente de tipos
  • Controles de servidor

Si hace doble clic en uno de estos nodos, se abre directamente el código fuente. Esto puede ser una buena forma de catalogar y explorar el sitio web.

Soporte de ASP.NET MVC

Cuando se genera un gráfico de dependencias de una aplicación web de ASP.NET MVC, obtiene los datos específicos de MVC siguientes:

  • Controlador de los vínculos de la vista (con las convenciones predeterminadas)
  • Vista de vínculos de modelo
  • Nodo de grupos que representan Áreas y Vista de carpetas

El resto de la aplicación

Una vez que haya explorado la estructura y las dependencias de su sitio web, también puede ver las dependencias en el resto de la aplicación utilizando la característica 'Get Code Dependencies' (Obtener dependencias del código).

Así el gráfico resultante se filtra para mostrar una cadena de dependencias desde la página web Checkout.aspx a través de la clase Order business logic (Lógica de negocios de pedido) y la clase Payment Data acces (Acceso a datos de pago).

Pruébelo

Si es un suscriptor de MSDN, descargue e lPaquete de funciones de visualización y modelado de Visual Studio 2010 (en inglés) y pruébelo.

¡Namaste!