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# |
|
Visual Basic |
|
Visual C++ |
Microsoft.VisualStudio.VCProject y Microsoft.VisualStudio.VCProjectEngine. |
Todos los lenguajes de programación |
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