Compartir a través de


Dentro de Visual Studio SDK

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

Arquitectura de extensibilidad

En la ilustración siguiente se muestra la arquitectura de extensibilidad de Visual Studio. Los VSPackages proporcionan funcionalidad de aplicación, que se comparte en todo 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.

Gráfico de la arquitectura del entorno

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. Los VSPackages son la unidad de la arquitectura central de Visual Studio. Para obtener más información, consulte VSPackages.

Visual Studio Shell

El shell de Visual Studio proporciona la funcionalidad básica y admite la comunicación cruzada entre los VSPackages de sus componentes y las 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 instrucciones de diseño y consejos de facilidad de uso: Instrucciones 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ú Vista.

Cuando se crea un comando, también debe crear un controlador de eventos para él. El controlador de eventos determina si el comando es visible o está activado, 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 interfaz IOleCommandTarget. Los comandos de Visual Studio se gestionan empezando por el contexto de comandos más interno, según la selección local, y continuando hasta el contexto más externo, según la selección global. Los comandos agregados al menú principal están disponibles inmediatamente para los scripts.

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

Los menús y las barras de herramientas ofrecen 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ú habituales son Archivo, Editar, Vista y Ventana. Para obtener más información, consulte 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 barra de herramientas suelen tener imágenes de icono, como el icono de una carpeta para un comando Abrir archivo o una impresora para un comando Imprimir. Todos los elementos de barra de herramientas están asociados a comandos. Cuando se hace clic en un botón de barra de herramientas, se ejecuta su comando asociado. En caso de un control desplegable, cada elemento de la lista desplegable está asociado a un comando distinto. Algunos controles de barra de herramientas, como los separadores, son híbridos. Un lado del control es un botón de la barra de herramientas y el otro lado es una flecha hacia abajo que muestra varios comandos cuando se hace clic en ella.

Ventanas de herramientas

Las ventanas de herramientas se usan en el IDE para mostrar información. Las ventanas Cuadro de herramientas, Explorador de soluciones, Propiedades y el Navegador 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 es especializada en este sentido, pero también es general porque se puede usar en muchas situaciones diferentes. Del mismo modo, la ventana Salida es especializa porque proporciona salida basada en texto, pero es general porque muchos subsistemas de Visual Studio pueden usarla para ofrecer la salida al usuario de Visual Studio.

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

Captura de pantalla

Algunas de las ventanas de herramientas se acoplan juntas en un solo panel que muestra la ventana de herramientas del 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, las ventanas 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 un Explorador de soluciones), las ventanas del editor pueden tener varias instancias, cada una de las cuales se usa para editar un documento independiente, pero todas ellas están acopladas 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 programarlos para acoplarlos ni que aparezcan 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 múltiples 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 para un lenguaje de programación o 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 correspondiente al 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 documento.

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 de 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 de Windows o Microsoft WordPad. Para obtener más información, consulte Extensiones del editor y servicio de lenguaje.

Servicios de lenguaje

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 de forma completa, parcial o no implementarlas en absoluto. En función de cómo se configure, el servicio de lenguaje puede proporcionar marcado de sintaxis, coincidencia de llaves, compatibilidad con IntelliSense y otras características en el editor.

En el corazón de un servicio de lenguaje se encuentran un analizador y un detector. Un detector (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 detector 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 antiguo.

Proyectos

En Visual Studio, los proyectos son los contenedores que usan los desarrolladores para organizar y generar 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, además de otros recursos. Los VSPackages pueden 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 (.sln) basado en texto y el archivo de opción de usuario de la solución (.suo) binario. 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, consulte Proyectos y Soluciones.

Plantillas de proyecto y elemento

Visual Studio incluye plantillas de proyecto predefinidas y plantillas de elementos 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 de referencia para 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, consulte Adición de plantillas de proyectos y elementos 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 de propiedades 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. La configuración suele incluir características relacionadas con la interfaz de usuario que se pueden importar y exportar: Compatibilidad con la Configuración de usuario.

Visual Studio Services

Un servicio proporciona un conjunto específico de interfaces para que los componentes las 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, habiliten el acceso a la ayuda, la barra de estado o a eventos de la 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.

Depurador

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, consulte 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, consulte 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, consulte Asistentes.

Herramientas personalizadas

Las herramientas personalizadas le 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 los VSPackages. Para obtener más información, consulte Utilidades VSSDK.

Con Windows Installer

En algunos casos, es posible que tenga que usar Windows Installer en lugar del instalador de 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 sus propias páginas de ayuda y F1 en el Visor de Ayuda. Para obtener más información, consulte SDK del Visor de Ayuda de Microsoft.