Compartir a través de


Tutorial: Crear un generador de datos personalizado

Actualización: noviembre 2007

Al desarrollar su esquema de base de datos, puede probar más eficazmente los cambios propuestos llenando una base de datos de prueba con información que represente los datos de producción de la forma más precisa posible. Los generadores de datos personalizados proporcionan datos de pruebas que cumplen sus especificaciones de manera más exacta que los generadores de datos integrados. Por ejemplo, puede crear un generador para llenar una columna de tabla con nombres aleatorios de una lista que especifique o con números de un intervalo que especifique. Para obtener más información, vea Descripción general de la generación de datos.

En este tutorial va a crear un generador personalizado simple que permite generar un número aleatorio entre cero y un límite superior especificado por el usuario del generador. Realizará las tareas siguientes:

  • Crear una clase que herede de Generator.

  • Crear una propiedad de entrada para especificar el límite superior de los datos que se van a generar.

  • Crear una propiedad de salida para usarla como salida del generador.

  • Reemplazar el método OnGenerateNextValues para generar los datos.

Para obtener información sobre problemas de seguridad que debe considerar antes de crear un generador de datos personalizados, vea Seguridad de los generadores de datos.

Requisitos previos

Para realizar este tutorial, necesita lo siguiente:

  • Visual Studio Team Edition for Database Professionals

Para crear un generador personalizado

  1. Cree un proyecto de biblioteca de clases y asígnele el nombre TestGenerator.

  2. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto y, a continuación, haga clic en Agregar referencia.

    Aparecerá el cuadro de diálogo Agregar referencia.

  3. Haga clic en la ficha .NET.

  4. En la lista Nombre de componente haga clic en Microsoft.VisualStudio.TeamSystem.Data y, a continuación, haga clic en Aceptar.

  5. (Opcional, sólo en Visual Basic) En el Explorador de soluciones, haga clic en Mostrar todos los archivos y expanda el nodo Referencias para comprobar la nueva referencia.

  6. En la parte superior de la ventana Código, agregue la siguiente línea de código antes de la declaración de clase.

    Imports Microsoft.VisualStudio.TeamSystem.Data.DataGenerator
    
    using Microsoft.VisualStudio.TeamSystem.Data.DataGenerator;
    
  7. Cambie el nombre de la clase de Class1 a TestGenerator.

    Precaución:

    De manera predeterminada, el nombre que asigne a la clase es el que aparecerá en la lista de la columna Generador en la ventana Detalles de columna. Debe especificar un nombre que no entre en conflicto con el nombre de un generador integrado o de otro generador personalizado.

    Public Class TestGenerator
    
    End Class
    
    public class TestGenerator
    {
    }
    
  8. Especifique que la clase hereda de Generator, como se muestra en el ejemplo siguiente:

    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    public class TestGenerator: Generator
    {
    }
    
  9. En el menú Archivo, haga clic en Guardar todo.

Agregar propiedades de entrada y de salida al generador

En la sección anterior creó una clase que hereda de la clase Generator. En esta sección va a agregar una propiedad de entrada y una propiedad de salida a la clase. Las propiedades de entrada se muestran en tiempo de diseño en la ventana Propiedades. Puede usarlas para configurar el generador. Las propiedades de salida contienen los valores que se usan para generar datos. También indican los tipos de datos que este generador puede producir.

Para agregar una entrada y una propiedad de salida

  1. Cree una variable miembro denominada mLimit, como se muestra en el ejemplo siguiente:

    Dim limitValue As Integer
    
    int limitValue;
    
  2. Cree una propiedad denominada Limit que establezca y devuelva la variable miembro mLimit, como se indica en el ejemplo siguiente:

    Public Property Limit() As Integer
        Set(ByVal value As Integer)
            limitValue = value
        End Set
        Get
            Return limitValue
        End Get
    End Property
    
    public int Limit
    {
        // The get is optional for input properties
        set {limitValue = value;}
        get {return limitValue;}
    }
    
  3. Agregue InputAttribute a la propiedad Limit, como se indica en el ejemplo siguiente.

    <Input(Name:="Limit", Description:="The upper limit of the data that is generated.")> _
    Public Property Limit() As Integer
    
    [Input(Name="Limit", Description="The upper limit of the data that is generated.")]
    public int Limit
    
  4. Cree una variable miembro denominada mRandom, como se muestra en el ejemplo siguiente:

    Dim randomValue As Integer
    
    int randomValue;
    
  5. Cree una propiedad de sólo lectura denominada RandomNumber que devuelva la variable miembro mRandom, como se indica en el ejemplo siguiente:

    Public ReadOnly Property RandomNumber() As Integer
        Get
           Return randomValue
        End Get
    End Property
    
    public int RandomNumber
    {
        get {return randomValue;}
    } 
    
  6. Agregue OutputAttribute a la propiedad RandomNumber, como se indica en el ejemplo siguiente.

    <Output()> _
    Public ReadOnly Property RandomNumber() As Integer
    
    [Output]
    public int RandomNumber
    
  7. En el menú Archivo, haga clic en Guardar todo.

Reemplazar el método OnGenerateNextValues

Visual Studio Team Edition for Database Professionals llama al método OnGenerateNextValues de cada generador para cada conjunto de valores que necesita. Al crear un generador de datos, debe invalidar este método para proporcionar lógica que genere los valores de cada una de las propiedades de salida.

Para reemplazar el método OnGenerateNextValues

  1. Cree una variable miembro que sea una instancia de la clase Random, como se indica en el ejemplo siguiente:

    Dim random As New Random
    
    Random random = new Random();
    
    Nota:

    Este paso crea un generador de datos no determinista. Para crear un generador de datos determinista, pase Seed como argumento al constructor Random.

  2. Invalide el método OnGenerateNextValues, como se indica en el ejemplo siguiente:

    Protected Overrides Sub OnGenerateNextValues()
    
        randomValue = CInt(random.NextDouble * Limit)
    End Sub
    
    protected override void OnGenerateNextValues()
    {
        randomValue = (int)(random.NextDouble() * Limit);
    }
    
  3. En el menú Archivo, haga clic en Guardar todo.

Firmar el generador

Debe firmar todos los generadores de datos personalizados con un nombre seguro antes de registrarlos.

Para firmar el generador con un nombre seguro

  1. En el menú Proyecto, haga clic en Propiedades de TestGenerator.

  2. En la ficha Firma, active la casilla Firmar el ensamblado.

  3. En el cuadro Seleccione un archivo de clave de nombre seguro, haga clic en <Nuevo...>.

  4. En el cuadro Nombre del archivo de clave, escriba TestGeneratorKey.

  5. Escriba y confirme una contraseña y, a continuación, haga clic en Aceptar.

    Al generar la solución, se usa el archivo de clave para firmar el ensamblado.

  6. En el menú Archivo, haga clic en Guardar todo.

  7. En el menú Generar, haga clic en Generar solución.

    Ha creado un generador de datos personalizados.

Pasos siguientes

Ahora que ha creado el generador de datos, debe registrarlo en el equipo para poder utilizar el generador. Puede registrar manualmente el generador de datos, como se describe en Tutorial: Registrar un generador de datos personalizado, o puede generar un proyecto de implementación que registre automáticamente el generador de datos.

Vea también

Tareas

Tutorial: Implementar un generador de datos personalizado

Cómo: Agregar propiedades de entrada para un generador de datos

Cómo: Agregar propiedades de salida para un generador de datos

Cómo: Registrar generadores de datos personalizados

Cómo: Crear generadores de datos personalizados

Conceptos

Descripción general de la extensibilidad del Generador de datos

Referencia

Microsoft.VisualStudio.TeamSystem.Data.DataGenerator

Otros recursos

Crear generadores de datos personalizados

Tutoriales sobre refactorización de bases de datos