Compartir vía


Elementos de un modelo de proyecto

Las interfaces e implementaciones de todos los proyectos de Visual Studio comparten una estructura básica: el modelo de proyecto de su tipo de proyecto. En su modelo de proyecto, que es el VSPackage que está desarrollando, crea objetos que cumplen las decisiones de diseño y funcionan junto con la funcionalidad global proporcionada por el IDE. Aunque usted controla cómo se conserva un elemento de proyecto, por ejemplo, no controla la notificación de que se debe conservar un archivo. Cuando un usuario coloca el foco en un elemento de proyecto abierto y elige Guardar en el menú Archivo de la barra de menús de Visual Studio, el código de tipo de proyecto debe interceptar el comando desde el IDE, conservar el archivo y enviar una notificación al IDE de que el archivo ya no cambiará.

El VSPackage interactúa con el IDE a través de servicios que otorgan acceso a las interfaces del IDE. Por ejemplo, a través de servicios concretos, supervisa y enruta comandos y proporciona información de contexto para las selecciones realizadas en el proyecto. Los servicios proporcionan toda la funcionalidad global del IDE necesaria para el VSPackage. Para obtener más información sobre los servicios, consulte Cómo: Obtención de un servicio.

Otras consideraciones sobre la implementación:

  • Un único modelo de proyecto puede contener más de un tipo de proyecto.

  • Los tipos de proyecto y los generadores de proyectos de operador se registran de forma independiente con identificadores GUID.

  • Cada proyecto debe tener un archivo de plantilla o un asistente para inicializar el nuevo archivo de proyecto cuando un usuario cree un nuevo proyecto a través de la interfaz de usuario de Visual Studio. Por ejemplo, las plantillas de Visual C++ inicializan lo que finalmente se convierte en archivos .vcproj.

    En la siguiente ilustración se muestran las interfaces, los servicios y los objetos principales que componen una implementación típica del proyecto. Puede usar el asistente de aplicaciones, HierUtil7, para crear los objetos subyacentes y otros textos reutilizables de programación. Para obtener más información sobre el asistente de aplicaciones HierUtil7, consulte Uso de clases de proyecto HierUtil7 para implementar un tipo de proyecto (C++).

    Gráfico del modelo de proyecto de Visual Studio

    modelo de proyecto

    Para obtener más información sobre las interfaces y los servicios enumerados en el diagrama anterior y otras interfaces opcionales no incluidas en el diagrama, consulte Componentes esenciales del modelo de proyecto.

    Los proyectos pueden admitir comandos y, por tanto, deben implementar la interfaz IOleCommandTarget para participar en el enrutamiento de comandos a través de los GUID de contexto de los comandos.