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
Cree un proyecto de biblioteca de clases y asígnele el nombre TestGenerator.
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.
Haga clic en la ficha .NET.
En la lista Nombre de componente haga clic en Microsoft.VisualStudio.TeamSystem.Data y, a continuación, haga clic en Aceptar.
(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.
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;
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 { }
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 { }
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
Cree una variable miembro denominada mLimit, como se muestra en el ejemplo siguiente:
Dim limitValue As Integer
int limitValue;
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;} }
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
Cree una variable miembro denominada mRandom, como se muestra en el ejemplo siguiente:
Dim randomValue As Integer
int randomValue;
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;} }
Agregue OutputAttribute a la propiedad RandomNumber, como se indica en el ejemplo siguiente.
<Output()> _ Public ReadOnly Property RandomNumber() As Integer
[Output] public int RandomNumber
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
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.
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); }
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
En el menú Proyecto, haga clic en Propiedades de TestGenerator.
En la ficha Firma, active la casilla Firmar el ensamblado.
En el cuadro Seleccione un archivo de clave de nombre seguro, haga clic en <Nuevo...>.
En el cuadro Nombre del archivo de clave, escriba TestGeneratorKey.
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.
En el menú Archivo, haga clic en Guardar todo.
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