Compartir a través de


Modelo de proyectos genérico y modelo de proyectos específico del lenguaje

Los complementos de Visual Studio están desusados en Visual Studio 2013. Debe actualizar los complementos a las extensiones de VSPackage. Para obtener más información sobre la actualización, vea Preguntas más frecuentes: Convertir complementos en extensiones de VSPackage.

Visual Studio proporciona dos tipos de modelos de proyectos: uno genérico y otro específico del lenguaje de programación.

Modelo de proyectos genérico

Los siguientes tipos representan el modelo de proyectos genérico:

Nombre de objeto

Descripción

Colección Projects

Representa todos los proyectos de la solución.

Objeto Project

Representa uno de los proyectos de la solución.

Colección ProjectItems

Representa todos los elementos de proyecto determinado.

Objeto ProjectItem

Representa un elemento de un proyecto determinado.

Estos objetos permiten manipular proyectos de cualquier tipo de lenguaje en Visual Studio. Con ellos, se puede:

  • Guardar o eliminar un proyecto.

  • Crear un nuevo elemento de proyecto, a partir de las plantillas de Visual Studio.

  • Agregar elementos a un proyecto a partir de archivos existentes.

  • Quitar elementos de un proyecto.

  • Abrir, guardar y eliminar elementos de un proyecto.

Modelo de proyectos específico del lenguaje

Además de los objetos relacionados con proyectos genéricos, un conjunto de espacios de nombres representa el proyecto específico del lenguaje de programación y las propiedades de los elementos de proyecto. Los espacios de nombres son los siguientes:

Los objetos principales que representan los proyectos de lenguaje son VSProject y VSProject2. VSProject2 se deriva de VSProject que, a su vez, se deriva de Project. Los objetos VSProjectItem representan los elementos de proyecto.

Lenguaje de programación

Espacios de nombres

Visual C#

VSLangProj, VSLangProj2 y VSLangProj80.

Visual Basic

VSLangProj, VSLangProj2 y VSLangProj80.

Visual C++

Microsoft.VisualStudio.VCProject y Microsoft.VisualStudio.VCProjectEngine.

Todos los lenguajes de programación

EnvDTE y EnvDTE80.

Dado que los objetos específicos del lenguaje se derivan de los genéricos, básicamente funcionan de la misma forma, con la salvedad de que proporcionan acceso a propiedades adicionales, métodos y eventos a los cuales no se tiene acceso con los objetos genéricos Project y ProjectItem.

Para obtener más información sobre cómo utilizar el modelo de proyectos específico del lenguaje, vea Introducción a la extensibilidad de proyectos.

Cambios en proyectos de Visual C++ de Visual Studio .NET

En Visual Studio .NET y versiones posteriores, ya no se requiere un control especial sobre la colección ProjectItems de Visual C++. Es decir, mientras que la colección Projects de Visual C++ anteriormente almacenaba todos los archivos de proyecto de Visual C++ en una lista plana, ahora los archivos se almacenan jerárquicamente tal y como son en los demás lenguajes de programación.

Como este cambio puede afectar al código ya existente, existe un modo de emular el comportamiento antiguo en el nuevo modelo de objetos específico del proyecto cuando se intenta indizar la colección ProjectItems para determinar si un archivo pertenece o no al proyecto. La principal diferencia es que ahora puede regresar al modelo de objetos DTE mediante la llamada a .Object en un objeto de Visual C++.

[Visual Basic]

Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object

Vea también

Tareas

Cómo: Crear proyectos mediante programación

Cómo: Crear elementos de proyecto mediante programación

Otros recursos

Controlar la solución y sus proyectos