Compartir a través de


Tutorial: Crear un asistente

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 usan 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 usan 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 navegación como Siguiente y Anterior.

El proceso para crear asistentes en Visual C++ se diferencia un poco del proceso para crear asistentes estándar de Visual Studio. Para obtener más información 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 han desarrollado con la Configuración de desarrollo general activa. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.

Ejemplo de un asistente básico

Asistente para complementos de Visual Studio

En esta imagen se muestra un recuadro del Asistente para complementos, un tipo de asistente para nuevo proyecto que le guía 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 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. Ejecute Visual Studio como administrador. Para registrar el asistente, es necesario actualizar el Registro, por lo que necesita este privilegio.

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

  3. 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.

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

Imports EnvDTE
Imports EnvDTE80
Public Class Class1
    Implements IDTWizard
using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE;
using EnvDTE80;
using System. Windows.Forms;

using System.Runtime.InteropServices;

namespace MyNewWizard
{

[ComVisible(true)]

[Guid("20184B81-7C38-4E02-A1E3-8D564EEC2D25"),

ProgId("MyNewWizard.Class1")]

    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)
  1. 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;
    using System.Runtime.InteropServices;
    
    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.

  2. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Propiedades para abrir la página Propiedades del proyecto; a continuación, haga clic en la pestaña Generar y active la casilla Registrar para interoperabilidad COM en la parte inferior de la página.

  3. En el archivo AssemblyInfo.cs, busque el atributo ComVisible y establézcalo en true.

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

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

    Para ello, realice una copia de un archivo .vsz existente, como cualquiera de los que se encuentran en <Directorio de instalación de Visual Studio>\VC#\CSharpProjectItems\Windows Forms, y cámbiele el nombre por "MyNewWizard.vsz".

    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 Agregar nuevo proyecto o Agregar nuevo 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.

  6. Reemplace el contenido de MyNewWizard.vsz con lo siguiente:

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  7. 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, es preciso guardar el archivo .vsz en el siguiente directorio: <Directorio de instalación de Visual Studio>\VB\VBProjectItems.

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

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

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

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

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

  11. 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

Referencia

IDTWizard

Modificadores y comandos de Visual Studio

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

Otros recursos

Crear complementos y asistentes