Partager via


Procédure pas à pas : création d'un générateur de données personnalisé

Mise à jour : novembre 2007

Lorsque vous développez votre schémade base de données, vous pouvez tester plus efficacement des modifications proposées en remplissant une base de données de test avec des données qui représentent les données de production le plus fidèlement possible. Les générateurs de données personnalisés fournissent des données de test qui satisfont vos spécifications de manière plus précise que les générateurs de données intégrés. Par exemple, vous pouvez créer un générateur pour remplir une colonne de table avec des noms aléatoires issus d'une liste ou des nombres d'une plage que vous spécifiez. Pour plus d'informations, consultez Vue d'ensemble de la génération de données.

Dans cette procédure pas à pas, vous créez un générateur personnalisé qui génère un entier aléatoire compris entre zéro et une limite supérieure spécifiée par l'utilisateur du générateur. Vous exécutez les tâches suivantes :

  • Créez une classe qui hérite de Generator.

  • Créez une propriété d'entrée permettant de spécifier la limite supérieure des données à générer.

  • Créez une propriété de sortie à utiliser comme sortie de générateur.

  • Substituez la méthode OnGenerateNextValues pour générer les données.

Pour plus d'informations sur les problèmes de sécurité que vous devez prendre en compte avant de créer un générateur de données personnalisé, consultez Sécurité des générateurs de données.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez disposer des éléments suivants :

  • Visual Studio Team Edition for Database Professionals

Pour créer un générateur personnalisé

  1. Créez un projet Bibliothèque de classes et nommez-le TestGenerator.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Ajouter une référence.

    La boîte de dialogue Ajouter une référence s'affiche.

  3. Cliquez sur l'onglet .NET.

  4. Dans la liste Nom du composant, cliquez sur Microsoft.VisualStudio.TeamSystem.Data, puis sur OK.

  5. (Facultatif, Visual Basic uniquement) Dans l'Explorateur de solutions, cliquez sur Afficher tous les fichiers, puis développez le nœud Références pour vérifier la nouvelle référence.

  6. En haut de la fenêtre Code, avant la déclaration de classe, ajoutez la ligne de code suivante :

    Imports Microsoft.VisualStudio.TeamSystem.Data.DataGenerator
    
    using Microsoft.VisualStudio.TeamSystem.Data.DataGenerator;
    
  7. Renommez la classe Class1 en TestGenerator.

    Attention :

    Par défaut, le nom que vous donnez à votre classe est celui qui apparaît dans la liste affichée dans la colonne Générateur de la fenêtre Détails de la colonne. Vous devez spécifier un nom qui ne crée pas de conflit avec le nom d'un générateur intégré ou d'un autre générateur personnalisé.

    Public Class TestGenerator
    
    End Class
    
    public class TestGenerator
    {
    }
    
  8. Spécifiez que votre classe hérite de Generator, comme illustré dans l'exemple suivant :

    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    public class TestGenerator: Generator
    {
    }
    
  9. Dans le menu Fichier, cliquez sur Enregistrer tout.

Ajout de propriétés d'entrée et de sortie au générateur

Dans la section précédente, vous avez créé une classe qui héritait de la classe Generator. Dans cette section, vous ajoutez une propriété d'entrée et une propriété de sortie à votre classe. Les propriétés d'entrée apparaissent au moment du design dans la fenêtre Propriétés, et vous pouvez les utiliser pour configurer le générateur. Les propriétés de sortie contiennent les valeurs qui sont utilisées pour générer des données. Elles indiquent également les types de données produites par ce générateur.

Pour ajouter une propriété d'entrée et de sortie

  1. Créez une variable membre nommée mLimit, comme illustré dans l'exemple suivant :

    Dim limitValue As Integer
    
    int limitValue;
    
  2. Créez une propriété nommée Limit qui définit et retourne la variable membre mLimit, comme illustré dans l'exemple suivant :

    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. Ajoutez InputAttribute à la propriété Limit, comme illustré dans l'exemple suivant :

    <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. Créez une variable membre nommée mRandom, comme illustré dans l'exemple suivant :

    Dim randomValue As Integer
    
    int randomValue;
    
  5. Créez une propriété en lecture seule nommée RandomNumber qui retourne la variable membre mRandom, comme illustré dans l'exemple suivant :

    Public ReadOnly Property RandomNumber() As Integer
        Get
           Return randomValue
        End Get
    End Property
    
    public int RandomNumber
    {
        get {return randomValue;}
    } 
    
  6. Ajoutez OutputAttribute à la propriété RandomNumber, comme illustré dans l'exemple suivant :

    <Output()> _
    Public ReadOnly Property RandomNumber() As Integer
    
    [Output]
    public int RandomNumber
    
  7. Dans le menu Fichier, cliquez sur Enregistrer tout.

Substitution de la méthode OnGenerateNextValues

Visual Studio Team Edition for Database Professionals appelle la méthode OnGenerateNextValues de chaque générateur pour chaque ensemble de valeurs dont il a besoin. Lorsque vous créez un générateur de données, vous devez substituer cette méthode pour fournir une logique qui génère de nouvelles valeurs pour chacune de vos propriétés de sortie.

Pour substituer la méthode OnGenerateNextValues

  1. Créez une variable membre qui est une instance de la classe Random, comme illustré dans l'exemple suivant :

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

    Cette étape crée un générateur de données de non déterministe. Pour créer un générateur de données déterministe, passez Seed en tant qu'argument au constructeur Random.

  2. Substituez la méthode OnGenerateNextValues, comme illustré dans l'exemple suivant :

    Protected Overrides Sub OnGenerateNextValues()
    
        randomValue = CInt(random.NextDouble * Limit)
    End Sub
    
    protected override void OnGenerateNextValues()
    {
        randomValue = (int)(random.NextDouble() * Limit);
    }
    
  3. Dans le menu Fichier, cliquez sur Enregistrer tout.

Signature du générateur

Vous devez signer tous les générateurs de données personnalisés avec un nom fort avant de les inscrire.

Pour signer le générateur avec un nom fort

  1. Dans le menu Projet, cliquez sur Propriétés de TestGenerator.

  2. Sous l'onglet Signature, activez la case à cocher Signer l'assembly.

  3. Dans la zone Choisir un fichier de clé de nom fort, cliquez sur <Nouveau...>.

  4. Dans la zone Nom du fichier clé, tapez TestGeneratorKey.

  5. Saisissez et confirmez le mot de passe, puis cliquez sur OK.

    Lorsque vous générez votre solution, le fichier de clé est utilisé pour signer l'assembly.

  6. Dans le menu Fichier, cliquez sur Enregistrer tout.

  7. Dans le menu Générer, cliquez sur Générer la solution.

    Vous avez créé un générateur de données personnalisé.

Étapes suivantes

Maintenant que vous avez créé votre générateur de données, vous devez l'enregistrer sur votre ordinateur avant de pouvoir l'utiliser. Vous pouvez enregistrer le générateur de données manuellement, comme décrit dans Procédure pas à pas : enregistrement d'un générateur de données personnalisé, ou générer un projet de déploiement qui enregistre automatiquement le générateur de données.

Voir aussi

Tâches

Procédure pas à pas : déploiement d'un générateur de données personnalisé

Comment : ajouter des propriétés d'entrée à un générateur de données

Comment : ajouter des propriétés de sortie un générateur de données

Comment : enregistrer des générateurs de données personnalisés

Comment : créer des générateurs de données personnalisés

Concepts

Vue d'ensemble de l'extensibilité des générateurs de données

Référence

Microsoft.VisualStudio.TeamSystem.Data.DataGenerator

Autres ressources

Création de générateurs de données personnalisés

Procédures pas à pas de refactorisation de bases de données