miércoles, 31 de marzo de 2010

Mecanismos de extensión: Addins


Como se ha comentado previamente, los Addins son piezas que podemos anclar en el entorno de VS para poder añadirle funcionalidad.

En esta sección se va a describir con más detalle en qué consisten, mediante la utilización de algunos ejemplos que servirán para aclarar los conceptos asociados a los Addins.

¿Por qué definir Addins?


Los motivos pueden ser muy numerosos, pero siempre con un objetivo de fondo, aportar una o más funcionalidades al entorno de desarrollo de VS.

¿Cómo se crean?

Para crearlos, existe un tipo de proyecto específico para ello. Al crear un nuevo proyecto en VS, podremos encontrarlo bajo “Otros tipos de proyectos” y dentro de esta sección en “Extensibilidad”.

Al pinchar en “Extensibilidad” se puede ver una plantilla de proyecto denominada “Complemento de Visual Studio”.

Una vez seleccionada la plantilla, se introduce un nombre para el Addin y una ubicación para el proyecto. Al pulsar aceptar, se comienza la introducción de parámetros de configuración para el Addin, en el cual se pide el lenguaje que se usará para desarrollar el Addin, nombre y descripción, cómo se cargará, etc.

¿Cómo se instalan?

Una vez desarrollado, es necesario instalarlo para poder ejecutarlo, aunque durante el desarrollo es posible probarlos sin necesidad de realizar la instalación. Antes de instalarlos, es debe crear un proyecto de instalación, asociando a dicho proyecto de instalación el proyecto del Addin.

Modos de invocación

Como se verá a continuación, el primer estado por el que pasa un Addin es el estado de “Conectado”, es el momento en el cual VS instancia la clase del Addin y llama a su método “Connect”. Para alcanzar el estado de conectado hay diferentes caminos:

  • Línea de comando. Cuando se lanza VS es posible pasar un parámetro indicando que al abrir ejecute un determinado Addin.
  • Al abrir VS. En este caso, cuando se instala el Addin, queda preparado para ejecutarse cuando se abre VS sin necesidad de indicarlo por línea de comando.
  • Sólo instalado. En este caso, el Addin queda instalado pero no en estado “Conectado”. Para pasar a estado “Conectado” habría que ir al menú “Herramientas” y dentro de éste “Administrador de complementos” desde donde se puede configurar dicho Addin para que sea pasado al estado “Conectado”.

Ciclo de vida

Cuando se inicia VS, busca dentro de la colección de Addins instalados y los pasa a estado “Conectado”. Para ello, invoca al método “Connect”. A partir de aquí el Addin comienza su ciclo de vida.


Al conectarse, continúa la ejecución hasta pasar al estado “Inicializado”. Al llegar a este estado VS llama al método “OnStartupComplete”.

Cada vez que el usuario invoca un comando a través del menú o de alguna barra de herramientas, VS llama al método “QueryStatus” para determinar si el Addin está habilitado o no. Si es así, llama al método “Exec”, en el cual el Addin realizaría las acciones necesarias si tiene implementación asociada a ese comando. El estado al que pasaría sería "Ejecutando".

Los Addins pueden ser descargados sin cerrar VS mediante el “Administrador de complementos”, por este motivo, cuando eso ocurre, VS invoca al método “OnDisconnection”, en el cual se realizarían las acciones de liberación de recursos, etc. previos a la descarga de la aplicación en el estado "Desconectando".

Finalmente, cuando VS se está cerrando también lo notifica a los Addins mediante la invocación del método “OnBeginShutdown” pasando al estado "Cerrando".

No hay comentarios:

Publicar un comentario