Tutorial: Crear un asistente

Actualización: noviembre 2007

Los asistentes, como por ejemplo el Asistente para complementos, son programas que conducen a un usuario a través de una serie de acciones con el propósito de realizar una tarea compleja, repetitiva o difícil. Por ejemplo, Windows utiliza asistentes para conectarse a recursos de red, impresoras, etc.

En Visual Studio, los asistentes generalmente formulan una serie de preguntas que solicitan acciones del usuario, y utilizan los resultados para generar código. Sin embargo, éstos no siempre muestran una interfaz de usuario (IU). Se pueden programar para generar código en segundo plano.

Existen tres tipos diferentes de asistentes.

  • Asistentes para nuevo proyecto: como lo sugiere el nombre, estos asistentes se utilizan para generar nuevo código para un tipo de proyecto en particular, lo que proporciona al usuario un punto de inicio a partir del cual agregar código propio. Éste es el tipo de asistente utilizado con más frecuencia.

  • Asistentes para agregar nuevo elemento: estos asistentes se utilizan para agregar a un proyecto nuevos elementos, como por ejemplo formularios Web Forms, archivos de texto, páginas HTML, páginas XML, etc.

  • Asistentes personalizados: estos asistentes no se llaman desde un cuadro de diálogo. En lugar de ello, se llaman directamente desde complementos, macros u otros tipos de código. Estos asistentes pueden mostrar o no una interfaz de usuario. En cualquier caso, generan código. Este tipo de asistente se utiliza con menos frecuencia.

Independientemente del tipo de asistente, todos ellos tienen características comunes.

  • Todos son objetos .NET que implementan la interfaz IDTWizard y tienen un método asociado, Execute, que contiene el código que desea que ejecute el asistente.

  • Todos utilizan un archivo .vsz para mostrarse en Visual Studio.

  • Todos ellos generan código o realizan alguna otra tarea.

Puede personalizar el aspecto de los elementos de los asistentes que crea. Frecuentemente, los asistentes están compuestos de una o más ventanas, o páginas. Las páginas pueden contener una imagen descriptiva, por ejemplo en la parte superior o izquierda de la página, una descripción de etiqueta, instrucciones y un área en la que pueden incluirse controles de exploración como Siguiente y Anterior.

El proceso para crear asistentes en Visual C++ se diferencia un poco del proceso para crear asistentes estándar para Visual Studio. Para obtener información adicional sobre cómo crear asistentes para Visual C++, vea Diseñar un asistente y Crear un asistente personalizado.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Estos procedimientos se desarrollaron con la Configuración general de desarrollo activa. Para cambiar la configuración, elija la opción Importar y exportarconfiguraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Ejemplo de un asistente básico

En esta imagen se muestra un panel del Asistente para complementos, un tipo de asistente para Proyecto nuevo que conduce al usuario a través de una serie de pasos para crear un complemento. Puede personalizar el aspecto de los asistentes, pero el Asistente para complementos es un buen ejemplo del estilo de un tipo de asistente estándar. Los asistentes finalizados se convierten en plantillas que están disponibles en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento.

A continuación se muestra cómo puede crear un asistente básico y, opcionalmente, asignarle un icono personalizado.

Para crear un asistente básico en Visual Basic y Visual C#

  1. Cree un nuevo proyecto de bibliotecas de clase denominado MyNewWizard.

  2. Agregue referencias a EnvDTE y EnvDTE80 al proyecto.

    Para ello, haga clic con el botón secundario del mouse en el proyecto y, a continuación, haga clic en Agregar referencia. En la ficha .NET del cuadro de diálogo Agregar referencia, haga clic en EnvDTE y EnvDTE80 y, a continuación, en Aceptar.

  3. En el módulo de clase, incluya referencias a EnvDTE y EnvDTE80 e implemente la interfaz IDTWizard. Para este ejemplo de Visual C#, también debe agregar una referencia a System.Windows.Forms.

    Imports EnvDTEImports EnvDTE80
    Public Class Class1
        Implements IDTWizard
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using EnvDTE;using EnvDTE80;using Windows.System.Forms;
    
    namespace MyNewWizard
    {
        public class Class1 : IDTWizard
        {
        }
    }
    

    Cuando agregue la instrucción Implements a Visual Basic, sitúe el cursor al final de la línea y presione Entrar para crear automáticamente un procedimiento del método Execute. Sin embargo, para Visual C# debe agregar manualmente el procedimiento Execute:

    public class Class1 : IDTWizard
        {
        public void Execute(object Application,         int hwndOwner, ref object[] contextParams,         ref object[] customParams,         ref EnvDTE.wizardResult retval)
    
  4. Agregue el código que desea que ejecute el asistente al procedimiento Execute. Para este ejemplo, agregaremos un sencillo cuadro de mensaje.

    Debe tener lo siguiente:

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Se llama al procedimiento Execute cuando se inicia el asistente.

  5. Para Visual Basic, haga clic con el botón secundario en el proyecto en el Explorador de soluciones, elija Propiedades para abrir la página Propiedades del proyecto, haga clic en la ficha Compilar y, a continuación, active el cuadro Registrar para interoperabilidad COM en la parte inferior de la página.

    Para Visual C# no se necesita este paso.

  6. Genere el proyecto para crear la dll de la biblioteca de clases, haciendo clic en Generar solución en el menú Generar.

  7. Cree un archivo de texto .vsz para el asistente llamado MyNewWizard.vsz.

    Para ello, haga clic en Archivo, señale a Nuevo y, a continuación, haga clic en Archivo.

    Un archivo .vsz es un archivo de texto que permite que Visual Studio reconozca el asistente y lo muestre en los cuadros de diálogo Nuevo proyecto o Agregar nuevo elemento. El parámetro Wizard del asistente se debe establecer en el ProgID (Project.Classname) del proyecto o en GUID. Para obtener más información, vea Configurar archivos .Vsz para iniciar asistentes.

    Nota:

    Opcionalmente, también puede crear un archivo VSDir para el asistente. Éste contiene la información que se muestra como una descripción para el asistente en los cuadros de diálogo Agregarnuevo proyecto o Agregarnuevo archivo. También permite especificar un icono y organizar su ubicación en la lista. Para obtener más información, vea Agregar asistentes a los cuadros de diálogo Agregar elemento y Nuevo proyecto mediante el uso de archivos .Vsdir.

  8. Agregue lo siguiente a MyNewWizard.vsz:

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  9. Guarde el nuevo archivo .vsz en el directorio donde desee que aparezca el asistente.

    En este ejemplo, deseamos que el asistente aparezca en el cuadro de diálogo Agregar nuevo elemento de los proyectos de Visual Basic; para ello, guarde el archivo .vsz en el siguiente directorio: <unidad>:\Archivos de programa\Microsoft Visual Studio 8\VB\VBProjectItems.

  10. Salga de Visual Studio y, a continuación, reinícielo.

    Esto obliga a Visual Studio a leer el nuevo archivo .vsz.

  11. Cree un nuevo proyecto de Visual Basic, como por ejemplo un proyecto de aplicación para Windows.

  12. Haga clic en el proyecto con el botón secundario, seleccione Agregarelemento y, a continuación, haga clic en Nuevo elemento.

    El nuevo asistente (MyNewWizard) aparecerá en el cuadro de diálogo Agregar nuevos elementos.

  13. Haga clic en el asistente y, a continuación, haga clic en el botón Agregar.

    Aparece el mensaje "El asistente se está ejecutando".

Para mostrar un icono personalizado para el nuevo asistente

  • Coloque un archivo de icono con el mismo nombre de archivo base que el archivo .dll, pero con extensión .ico en el mismo directorio que el archivo del asistente.

    Por ejemplo, si el asistente se denomina MyNewWizard.dll, asigne el nombre MyNewWizard.ico al archivo .ico.

    O bien

  • Si creó un archivo VSDir, especifique una ruta de acceso al archivo de icono (.ico).

Vea también

Tareas

Cómo: Crear un complemento

Conceptos

Gráfico del modelo de objetos de automatización

Agregar asistentes a los cuadros de diálogo Agregar elemento y Nuevo proyecto mediante el uso de archivos .Vsdir

Configurar archivos .Vsz para iniciar asistentes

Referencia

IDTWizard

Modificadores y comandos de Visual Studio

Otros recursos

Crear complementos y asistentes