Dentro de Visual Studio SDK

En esta sección se proporciona información detallada sobre las extensiones de Visual Studio, incluida la arquitectura de Visual Studio, componentes, servicios, esquemas, utilidades y similares.

Arquitectura de extensibilidad

En la ilustración siguiente se muestra la arquitectura de extensibilidad de Visual Studio. VSPackages proporciona funcionalidad de aplicación, que se comparte entre el IDE como servicios. El IDE estándar también ofrece una amplia gama de servicios, como SVsUIShell, que proporcionan acceso a la funcionalidad de ventanas del IDE.

Environment Architecture graphic Vista generalizada de la arquitectura de Visual Studio

VSPackages

Los VSPackages son módulos de software que conforman y amplían Visual Studio con elementos de interfaz de usuario, servicios, proyectos, editores y diseñadores. VSPackages son la unidad de arquitectura central de Visual Studio. Para obtener más información, consulte VSPackages.

Visual Studio Shell

El shell de Visual Studio proporciona funcionalidad básica y admite la comunicación cruzada entre sus componentes VSPackages y extensiones MEF. Para obtener más información, consulte Shell de Visual Studio.

Directrices de la experiencia de usuario

Si planea diseñar nuevas características para Visual Studio, debe echar un vistazo a estas directrices para sugerencias de diseño y facilidad de uso: Directrices para la experiencia del usuario de Visual Studio.

Comandos

Los comandos son funciones que realizan tareas, como la impresión de un documento, la actualización de una vista o la creación de un archivo nuevo.

Al extender Visual Studio, puede crear comandos y registrarlos con el shell de Visual Studio. Puede especificar cómo aparecerán estos comandos en el IDE, por ejemplo, en un menú o barra de herramientas. Normalmente, aparece un comando personalizado en el menú Herramientas y aparecerá un comando para mostrar una ventana de herramientas en el submenú Otras ventanas del menú Ver.

Al crear un comando, también debe crear un controlador de eventos para él. El controlador de eventos determina cuándo el comando está visible o habilitado, le permite modificar su texto y garantiza que el comando responde correctamente cuando se activa. En la mayoría de los casos, el IDE controla los comandos mediante la IOleCommandTarget interfaz . Los comandos de Visual Studio se controlan a partir del contexto de comando más interno, en función de la selección local y continuar con el contexto más externo, en función de la selección global. Los comandos agregados al menú principal están disponibles inmediatamente para los scripts.

Para obtener más información, vea Comandos, menús y barras de herramientas.

Los menús y las barras de herramientas proporcionan una manera para que los usuarios invoquen comandos. Los menús son filas o columnas de comandos que normalmente se muestran como elementos de texto individuales en la parte superior de una ventana de herramientas. Los submenús son menús secundarios que aparecen cuando un usuario hace clic en comandos que incluyen una flecha pequeña. Los menús contextuales aparecen cuando un usuario hace clic con el botón derecho en determinados elementos de la interfaz de usuario. Algunos nombres de menú comunes son Archivo, Editar, Ver y Ventana. Para obtener más información, vea Extender menús y comandos.

Las barras de herramientas son filas o columnas de botones y otros controles, como cuadros combinados, cuadros de lista y cuadros de texto. Los botones de la barra de herramientas suelen tener imágenes de icono, como un icono de carpeta para un comando Abrir archivo o una impresora para un comando Imprimir . Todos los elementos de la barra de herramientas están asociados a comandos. Al hacer clic en un botón de barra de herramientas, se ejecuta su comando asociado. En el caso de un control desplegable, cada elemento de la lista desplegable está asociado a un comando diferente. Algunos controles de barra de herramientas, como un control divisor, son híbridos. Un lado del control es un botón de barra de herramientas y el otro lado es una flecha hacia abajo que muestra varios comandos cuando se hace clic en él.

Ventanas de herramientas

Las ventanas de herramientas se usan en el IDE para mostrar información. Cuadro de herramientas, Explorador de soluciones, ventana Propiedades y Explorador web son ejemplos de ventanas de herramientas.

Las ventanas de herramientas suelen ofrecer varios controles con los que el usuario puede interactuar. Por ejemplo, la ventana Propiedades permite al usuario establecer propiedades de objetos que sirven para un propósito determinado. La ventana Propiedades está especializada en este sentido, pero también general porque se puede usar en muchas situaciones diferentes. Del mismo modo, la ventana Salida se especializa porque proporciona salida basada en texto, pero general porque muchos subsistemas de Visual Studio pueden usarlo para proporcionar la salida al usuario de Visual Studio.

Tenga en cuenta la siguiente imagen de Visual Studio, que contiene varias ventanas de herramientas:

Screen shot

Algunas de las ventanas de herramientas se acoplan juntas en un solo panel que muestra la ventana de herramientas de Explorador de soluciones y oculta las otras ventanas de herramientas, pero las pone a disposición haciendo clic en pestañas. En la imagen se muestran otras dos ventanas de herramientas, la ventana Lista de errores y Salida , acopladas juntas en un único panel.

También se muestra el panel de documentos principal, que muestra varias ventanas del editor. Aunque las ventanas de herramientas suelen tener solo una instancia (por ejemplo, solo se puede abrir una Explorador de soluciones), las ventanas del editor pueden tener varias instancias, cada una de las cuales se usa para editar un documento independiente, pero todos ellos están acoplados en el mismo panel. La imagen muestra un panel de documentos que tiene dos ventanas del editor, una ventana del diseñador de formularios. Todas las ventanas del panel de documentos están disponibles haciendo clic en pestañas, pero la ventana del editor que contiene el archivo EditorPane.cs está visible y activa.

Al extender Visual Studio, puede crear ventanas de herramientas que permitan a los usuarios de Visual Studio interactuar con la extensión. También puede crear sus propios editores que permitan a los usuarios de Visual Studio editar documentos. Dado que las ventanas de herramientas y los editores se integrarán en Visual Studio, no es necesario programarlas para acoplarlas ni aparecer correctamente en una pestaña. Cuando se registran correctamente en Visual Studio, tendrán automáticamente las características típicas de las ventanas de herramientas y las ventanas de documentos en Visual Studio. Para obtener más información, consulte Extensión y personalización de ventanas de herramientas.

Ventanas de documento

Una ventana de documento es una ventana secundaria enmarcada de una ventana de interfaz de varios documentos (MDI). Normalmente, las ventanas de documentos se usan para hospedar editores de texto, editores de formularios (también conocidos como diseñadores) o controles de edición, pero también pueden hospedar otros tipos funcionales. El cuadro de diálogo Nuevo archivo incluye ejemplos de ventanas de documento que proporciona Visual Studio.

La mayoría de los editores son específicos de un lenguaje de programación o de un tipo de archivo, como páginas HTML, conjuntos de marcos, archivos de C++ o archivos de encabezado. Al seleccionar una plantilla en el cuadro de diálogo Nuevo archivo , un usuario crea dinámicamente una ventana de documento para el editor para el tipo de archivo asociado a la plantilla. También se crea una ventana de documento cuando un usuario abre un archivo existente.

Las ventanas de documento están restringidas al área cliente MDI. Cada ventana de documento tiene una pestaña en la parte superior y el orden de tabulación está vinculado a otras ventanas que pueden estar abiertas en el área MDI. Al hacer clic con el botón derecho en la pestaña de una ventana de documento se muestra un menú contextual que incluye opciones para dividir el área MDI en varios grupos de pestañas horizontales o verticales. Dividir el área MDI permite ver varios archivos al mismo tiempo. Para obtener más información, consulte Ventanas de documentos.

Editores

El editor de Visual Studio le permite personalizarlo y usarlo para su propio tipo de contenido mediante Managed Extensibility Framework (MEF). En muchos casos no tendrá que crear un VSPackage para ampliar el editor, aunque si desea incluir características del shell (por ejemplo, un comando de menú o una tecla de método abreviado), puede combinar una extensión MEF con un VSPackage.

También puede crear un editor personalizado, por ejemplo, si desea leer y escribir en una base de datos, o si desea usar un diseñador. También puede usar un editor externo, como Bloc de notas o Microsoft WordPad. Para obtener más información, consulte Editor y Extensiones de servicio de lenguaje.

Language Services

Si desea que el editor de Visual Studio admita nuevas palabras clave de programación o incluso un nuevo lenguaje de programación, cree un servicio de lenguaje. Cada servicio de lenguaje puede implementar determinadas características del editor completamente, parcialmente o no en absoluto. En función de cómo se configure, el servicio de lenguaje puede proporcionar resaltado de sintaxis, coincidencia de llaves, compatibilidad con IntelliSense y otras características en el editor.

En el corazón de un servicio de idioma se trata de un analizador y un escáner. Un analizador (o lexer) divide un archivo de origen en elementos conocidos como tokens y un analizador establece las relaciones entre esos tokens. Al crear un servicio de lenguaje, debe implementar el analizador y el analizador para que Visual Studio pueda comprender los tokens y la gramática del lenguaje. Puede crear servicios de lenguaje administrados o no administrados. Para obtener más información, consulte Extensibilidad del servicio de lenguaje heredado.

Proyectos

En Visual Studio, los proyectos son los contenedores que usan los desarrolladores para organizar y compilar el código fuente y otros recursos. Los proyectos permiten organizar, compilar, depurar e implementar código fuente, referencias a servicios web y bases de datos y otros recursos. VSPackages puede ampliar el sistema de proyectos de Visual Studio proporcionando tipos de proyecto, subtipos de proyecto y herramientas personalizadas.

Los proyectos también se pueden reunir en una solución, que es una agrupación de uno o varios proyectos que funcionan juntos para crear una aplicación. La información de proyecto y estado que pertenece a la solución se almacena en dos archivos de solución, el archivo de solución basado en texto (.sln) y el archivo de usuario de la solución binaria (.suo). Estos archivos son similares a los archivos de grupo (.vbg) que se usaron en versiones anteriores de Visual Basic y los archivos de opciones de usuario (.dsw) y área de trabajo (.dsw) que se usaron en versiones anteriores de C++.

Para obtener más información, vea Proyectos y soluciones.

Plantillas de proyecto y elemento

Visual Studio incluye plantillas de proyecto predefinidas y plantillas de elemento de proyecto. También puede crear sus propias plantillas o adquirir plantillas de la comunidad y, a continuación, integrarlas en Visual Studio. La Galería de código de MSDN es el lugar para ir a las plantillas y extensiones.

Las plantillas contienen la estructura del proyecto y los archivos básicos necesarios para compilar un tipo determinado de aplicación, control, biblioteca o clase. Cuando quiera desarrollar software similar a una de las plantillas, cree un proyecto basado en la plantilla y, a continuación, modifique los archivos de ese proyecto.

Nota:

Esta arquitectura de plantilla no se admite para proyectos de Visual C++.

Para obtener más información, vea Agregar plantillas de proyecto y elemento de proyecto.

Propiedades y opciones

La ventana Propiedades muestra las propiedades de uno o varios elementos seleccionados: las páginas De opciones de extensión contienen conjuntos de opciones que pertenecen a un componente determinado, como un lenguaje de programación o un VSPackage: Opciones y páginas de opciones. Configuración suelen ser características relacionadas con la interfaz de usuario que se pueden importar y exportar: Compatibilidad con Configuración de usuario.

Visual Studio Services

Un servicio proporciona un conjunto específico de interfaces para que los componentes los consuman. Visual Studio proporciona un conjunto de servicios que cualquier componente puede usar, incluidas las extensiones. Por ejemplo, los servicios de Visual Studio permiten que las ventanas de herramientas se muestren o se oculten dinámicamente, habilite el acceso a eventos de ayuda, barra de estado o interfaz de usuario. El editor de Visual Studio también proporciona servicios que las extensiones del editor pueden importar. Para obtener más información, consulte Uso y prestación de servicios.

instantáneas

El depurador es la interfaz de usuario para los componentes de depuración específicos del lenguaje. Si ha creado un nuevo servicio de lenguaje, deberá crear un motor de depuración específico para enlazar con el depurador. Para obtener más información, vea Extensibilidad del depurador de Visual Studio.

Control de código fuente

Para obtener información sobre cómo implementar un complemento de control de código fuente o VSPackage, vea Control de código fuente.

Asistentes

Puede crear un asistente junto con un nuevo tipo de proyecto, de modo que el asistente pueda ayudar a los usuarios a tomar las decisiones adecuadas al crear un nuevo proyecto de ese tipo. Para obtener más información, vea Asistentes.

Herramientas personalizadas

Las herramientas personalizadas permiten asociar una herramienta a un elemento de un proyecto y ejecutar esa herramienta cada vez que se guarda el archivo. Para obtener más información, consulte Herramientas personalizadas.

Utilidades VSSDK

VSSDK incluye un conjunto de utilidades que puede necesitar para trabajar con diferentes aspectos de VSPackages. Para obtener más información, consulte Utilidades de VSSDK.

Uso de Windows Installer

En algunos casos, es posible que tenga que usar Windows Installer en lugar del instalador vsix: por ejemplo, puede que tenga que escribir en el registro. Para obtener información sobre el uso de Windows Installer con las extensiones, consulte Instalación de VSPackages con Windows Installer.

Visor de Ayuda

Puede integrar su propia ayuda y páginas F1 en el Visor de Ayuda. Para obtener más información, consulte SDK del Visor de Ayuda de Microsoft.