Entorno de desarrollo: las extensiones de Visual Studio se vuelven independientes

Microsoft ha ampliado el nuevo modelo para escribir extensiones de Visual Studio que lanzó hace un año. Con la nueva actualización, las extensiones se pueden crear con su propia interfaz de usuario. Además, las extensiones que se ejecutan en un proceso independiente ahora pueden mostrar información sobre herramientas y notificaciones sobre el progreso de las acciones.

Con el inicio de la Fase 2, el proyecto de escritura de extensibilidad de Visual Studio cambió su nombre de VSExtensibility a VisualStudio.Extensibility. Sin embargo, el repositorio de GitHub que contiene los anuncios y la documentación todavía lleva el nombre anterior.

El impulso para presentar el nuevo modelo en septiembre de 2021 fue que, a diferencia de las extensiones clásicas de Visual Studio, las extensiones se ejecutan en un proceso independiente para no afectar la estabilidad del entorno de desarrollo. Después de que la primera versión se limitara a la funcionalidad del editor, puede crear sus propias interfaces de usuario con la nueva variante.

VisualStudio.Extensibility viene con su propio marco de IU remota para crear interfaces con componentes WPF (Windows Presentation Foundation) cuya lógica de programa se ejecuta en un proceso separado. Los desarrolladores pueden usarlo, por ejemplo, para crear ventanas de herramientas independientes. La IU remota se basa en el patrón de diseño Model-View-ViewModel (MVVM) para separar la visualización de los componentes de la IU de su lógica asociada.

El proceso de Visual Studio se ocupa de los elementos de WPF, mientras que la lógica del programa funciona en el proceso de host de extensión.

(Foto: Microsoft)

El marco XAML (Lenguaje de marcado de aplicaciones extensible) se utiliza para describir la interfaz de usuario. La lógica del programa de la extensión se ejecuta en un proceso de extensión independiente, mientras que el proceso de Visual Studio se encarga de representar los componentes. La comunicación entre procesos es asíncrona.

El marco de la IU remota proporciona funciones para mostrar ventanas de herramientas, incluida la configuración de ubicaciones predeterminadas y reglas para mostrar y cerrar la ventana en contexto.

La versión actual de VisualStudio.Extensibility también ofrece comandos para mostrar información sobre herramientas y le permite combinar sus propias imágenes después Aquellos en el catálogo de imágenes de Visual Studio.

Finalmente, las extensiones ahora pueden mostrar notificaciones sobre el progreso de las acciones que se ejecutan en segundo plano, lo que brinda a los usuarios la opción de cancelar una acción prolongada.

El botón opcional detiene los procesos que una extensión está ejecutando en segundo plano.

(Foto: Microsoft)

Las extensiones del editor también obtienen algunas adiciones después del primer lanzamiento que se enfoca en funciones como linters y herramientas de formato. Más recientemente, se puede especificar el tipo de contenido y las extensiones de archivo asociadas con él, como muestra el siguiente ejemplo de la documentación:

using Microsoft.VisualStudio.Extensibility.Editor;

[assembly: ContentTypeDefinition("markdown")]
[assembly: ContentTypeBaseDefinition("markdown", 
                                     baseContentTypeName: "text")]
[assembly: FileExtensionMapping("markdown", fileExtension: ".md")]
[assembly: FileExtensionMapping("markdown", fileExtension: ".mdk")]
[assembly: FileExtensionMapping("markdown", 
                                fileExtension: ".markdown")]

Visual Studio integra las nuevas definiciones de tipo de contexto con las de las extensiones clásicas de Visual Studio.

AppliesTo() Y el AppliesToPattern() Especifique también los tipos de documentos o las rutas y tipos de archivos a los que se aplica la extensión:

[AppliesTo(ContentType = "CSharp")]
[AppliesToPattern(Pattern = "**/tests/*.cs")]

Más detalles sobre VisualStudio.Extensibility Se puede encontrar en el blog de Visual Studio.. Se pueden encontrar detalles sobre el desarrollo y la documentación. En el repositorio de GitHub vinculado.


(República de Macedonia)

a la página de inicio

READ  ¡AVM FRITZ RECIBIDO! Box 6591 & 6660 Cable Nueva versión de laboratorio

Deja una respuesta

Tu dirección de correo electrónico no será publicada.