Hoy voy a explicar cómo desarrollar una extensión para Visual Studio 2013, concretamente esta extensión va a servir para manejar y ver qué canción está sonando en nuestro Spotify. De esta forma no tendrás que cambiar de ventana abandonando el Visual Studio para saber cuál es esa canción que estás escuchando o para pasar a la siguiente canción porque no aguantas más la que está sonando.

Voy a dividir el post en dos entradas para hacerlas más ligeras. En la primera de ellas voy a explicar los conceptos básicos de las extensiones de Visual Studio y cómo crear una muy básica y en la segunda explicaré en detalle cómo podemos manejar desde otra aplicación el cliente de Spotify que tenemos instalado en nuestro ordenador.

Lo primero que tienes que hacer si quieres desarrollar una extensión para Visual Studio es descargarte su SDK e instalarlo. A partir de ese momento tienes una nueva sección al crear un nuevo proyecto en Visual Studio llamada Extensibility dentro de ella puedes ver las diferentes plantillas de proyecto de extensión que existen en Visual Studio. En nuestro caso vamos a utilizar la llamada Visual Studio Package con la cual podemos crear una nueva ventana dentro de Visual Studio usando para ello C#, C++ o Visual Basic (en este caso he utilizado C#).

Durante el asistente de configuración del nuevo proyecto podemos definir, a parte del lenguaje de programación, cosas como el nombre de la compañía, el nombre del paquete, la versión o información detallada sobre el paquete. A la hora de seleccionar la funcionalidad de la extensión marcamos el checkbox de Tool Window y le tenemos que indicar un nombre.

Una vez finalizamos el asistente de configuración, tenemos un proyecto creado que contiene una tool window con un texto y un botón. Si ejecutamos el proyecto, un nuevo Visual Studio se abre y si vamos al menú View - Other Windows podemos ver la extensión que acabamos de crear, pulsando en ella se abre la ventana que contiene el texto y el botón y la podemos colocar a la parte que queramos de Visual Studio.

Si vemos la estructura general del proyecto podemos ver que tenemos una clase MyToolWindow la cual extiende de ToolWindowPane y que en definitiva es la tool window que le hemos dicho antes que queríamos crear. Dentro de esa misma clase podemos ver cómo se inicializa y especifica el contenido visual que vamos a ver, en este caso un UserControl con un texto y un botón.

public class MyToolWindow : ToolWindowPane
{
    public MyToolWindow() : base(null)
    {
        this.Caption = Resources.ToolWindowTitle;
        this.BitmapResourceID = 301;
        this.BitmapIndex = 1;

        base.Content = new MyControl();
    }
}

Si pasamos a ver el code behind del UserControl podemos ver el manejador del evento de click del botón como sería en cualquier otra aplicación de Windows o Windows Phone.

public partial class MyControl : UserControl
{
    public MyControl()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show(string.Format(SCultureInfo.CurrentUICulture, "We are inside {0}.button1_Click()", this.ToString()), "My Tool Window");
    }
}

A partir de este momento ya tenemos listo el proyecto de la extensión de Visual Studio, pudiendo modificar lo que queramos en el xaml del UserControl y añadiendo también lo que queramos en el code behind del xaml. Para probar nuestros cambios lo único que tendremos que hacer es ejecutar el proyecto para que se nos abra una nueva instancia de Visual Studio donde ver nuestra extensión.

Como podéis ver es realmente sencillo crear una extensión sencilla para nuestro Visual Studio. En este punto dejo el post, en el siguiente explicaré en detalle cómo podemos manejar Spotify y ver lo que está sonando en él desde nuestra extensión.

Si tienes cualquier duda o sugerencia no dudes en dejar un comentario ;)

Continúa leyendo la segunda parte.