Share via


Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Datengenerators

Aktualisiert: November 2007

Bei der Entwicklung des Schemas für die Datenbank können Sie vorgeschlagene Änderungen effektiver testen, indem Sie eine Testdatenbank mit Daten füllen, die den Produktionsdaten möglichst ähnlich sind. Benutzerdefinierte Datengeneratoren stellen Testdaten bereit, die genauer mit den Spezifikationen übereinstimmen, als das mit integrierten Datengeneratoren möglich ist. Sie können z. B. einen Generator erstellen, der eine Tabellenspalte mit zufälligen Namen aus einer zuvor angegebenen Liste oder mit Zahlen aus einem angegebenen Bereich ausfüllt. Weitere Informationen finden Sie unter Übersicht über das Generieren von Daten.

In dieser exemplarischen Vorgehensweise erstellen Sie einen benutzerdefinierten Generator, der eine zufällige ganze Zahl zwischen 0 und einer oberen Grenze generiert, die der Benutzer des Generators angibt. Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:

  • Erstellen Sie eine Klasse, die von Generator erbt.

  • Erstellen einer Eingabeeigenschaft, um die obere Grenze der zu generierenden Daten anzugeben

  • Erstellen einer Ausgabeeigenschaft für die Verwendung als Generatorausgabe

  • Überschreiben der OnGenerateNextValues-Methode, um die Daten zu generieren

Informationen zu Sicherheitsproblemen, die Sie vor der Erstellung eines benutzerdefinierten Datengenerators beachten sollten, finden Sie unter Sicherheit von Datengeneratoren.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Visual Studio Team Edition for Database Professionals

So erstellen Sie einen benutzerdefinierten Generator

  1. Erstellen Sie ein Klassenbibliotheksprojekt mit dem Namen TestGenerator.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Verweis hinzufügen.

    Das Dialogfeld Verweis hinzufügen wird angezeigt.

  3. Klicken Sie auf die Registerkarte .NET.

  4. Klicken Sie in der Liste Komponentenname auf Microsoft.VisualStudio.TeamSystem.Data und anschließend auf OK.

  5. (Optional, nur Visual Basic) Klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen, und erweitern Sie den Knoten Verweise, um den neuen Verweis zu überprüfen.

  6. Fügen Sie oben im Codefenster vor der Klassendeklaration die folgende Codezeile hinzu:

    Imports Microsoft.VisualStudio.TeamSystem.Data.DataGenerator
    
    using Microsoft.VisualStudio.TeamSystem.Data.DataGenerator;
    
  7. Benennen Sie die Klasse von Class1 in TestGenerator um.

    Vorsicht:

    Der Name, den Sie für die Klasse vergeben, wird standardmäßig im Fenster Spaltendetails in der Liste der Generator-Spalte angezeigt. Sie sollten einen Namen angeben, der zu keinem Konflikt mit dem Namen eines integrierten Generators oder eines anderen benutzerdefinierten Generators führt.

    Public Class TestGenerator
    
    End Class
    
    public class TestGenerator
    {
    }
    
  8. Geben Sie an, dass die Klasse von Generator erbt, wie im folgenden Beispiel dargestellt:

    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    public class TestGenerator: Generator
    {
    }
    
  9. Klicken Sie im Menü Datei auf Alle speichern.

Hinzufügen von Eingabe- und Ausgabeeigenschaften zum Generator

Im vorherigen Abschnitt haben Sie eine Klasse erstellt, die von der Generator-Klasse erbt. In diesem Abschnitt fügen Sie zur Klasse eine Eingabe- und eine Ausgabeeigenschaft hinzu. Eingabeeigenschaften werden zur Entwurfszeit im Eigenschaftenfenster angezeigt. Sie können mit ihnen den Generator konfigurieren. Ausgabeeigenschaften enthalten die Werte zum Generieren von Daten. Ausgabeeigenschaften geben außerdem an, welche Typen von Daten der Generator erzeugen kann.

So fügen Sie eine Eingabe- und eine Ausgabeeigenschaft hinzu

  1. Erstellen Sie eine Membervariable mit dem Namen mLimit, wie im folgenden Beispiel dargestellt:

    Dim limitValue As Integer
    
    int limitValue;
    
  2. Erstellen Sie eine Eigenschaft mit dem Namen Limit, die die Membervariable mLimit festlegt und zurückgibt, wie im folgenden Beispiel dargestellt:

    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. Fügen Sie InputAttribute zur Limit-Eigenschaft hinzu, wie im folgenden Beispiel dargestellt:

    <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. Erstellen Sie eine Membervariable mit dem Namen mRandom, wie im folgenden Beispiel dargestellt:

    Dim randomValue As Integer
    
    int randomValue;
    
  5. Erstellen Sie eine schreibgeschützte Eigenschaft mit dem Namen RandomNumber, die die Membervariable mRandom zurückgibt, wie im folgenden Beispiel dargestellt:

    Public ReadOnly Property RandomNumber() As Integer
        Get
           Return randomValue
        End Get
    End Property
    
    public int RandomNumber
    {
        get {return randomValue;}
    } 
    
  6. Fügen Sie OutputAttribute zur RandomNumber-Eigenschaft hinzu, wie im folgenden Beispiel dargestellt:

    <Output()> _
    Public ReadOnly Property RandomNumber() As Integer
    
    [Output]
    public int RandomNumber
    
  7. Klicken Sie im Menü Datei auf Alle speichern.

Überschreiben der OnGenerateNextValues-Methode

Visual Studio Team Edition for Database Professionals ruft die OnGenerateNextValues-Methode jedes Generators für jeden Satz von erforderlichen Werten auf. Wenn Sie einen Datengenerator erstellen, sollten Sie diese Methode überschreiben, um die Logik bereitzustellen, mit der Werte für jede der Ausgabeeigenschaften generiert werden.

So überschreiben Sie die OnGenerateNextValues-Methode

  1. Erstellen Sie eine Membervariable, die eine Instanz der Random-Klasse ist, wie im folgenden Beispiel dargestellt:

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

    Dieser Schritt erstellt einen nicht deterministischen Datengenerator. Um einen deterministischen Datengenerator zu erstellen, übergeben Sie Seed als Argument an den Random-Konstruktor.

  2. Überschreiben Sie die OnGenerateNextValues-Methode, wie im folgenden Beispiel dargestellt:

    Protected Overrides Sub OnGenerateNextValues()
    
        randomValue = CInt(random.NextDouble * Limit)
    End Sub
    
    protected override void OnGenerateNextValues()
    {
        randomValue = (int)(random.NextDouble() * Limit);
    }
    
  3. Klicken Sie im Menü Datei auf Alle speichern.

Signieren des Generators

Sie müssen alle benutzerdefinierten Datengeneratoren mit einem starken Namen signieren, bevor Sie sie registrieren.

So signieren Sie den Generator mit einem starken Namen

  1. Klicken Sie im Menü Projekt auf Eigenschaften von TestGenerator.

  2. Aktivieren Sie auf der Registerkarte Signierung das Kontrollkästchen Assembly signieren.

  3. Klicken Sie im Feld Schlüsseldatei mit starkem Namen auswählen auf Neu.

  4. Geben Sie im Feld Schlüsseldateiname den Namen TestGeneratorKey ein.

  5. Geben Sie ein Kennwort ein, bestätigen Sie das Kennwort, und klicken Sie dann auf OK.

    Wenn Sie die Projektmappe erstellen, wird die Assembly mit der Schlüsseldatei signiert.

  6. Klicken Sie im Menü Datei auf Alle speichern.

  7. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Sie haben einen benutzerdefinierten Datengenerator erstellt.

Nächste Schritte

Nachdem Sie den Datengenerator erstellt haben, müssen Sie diesen auf dem Computer registrieren, bevor Sie den Generator verwenden können. Sie können den Datengenerator manuell registrieren, wie in Exemplarische Vorgehensweise: Registrieren eines benutzerdefinierten Datengenerators beschrieben, oder Sie können ein Bereitstellungsprojekt erstellen, das den Datengenerator automatisch registriert.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Datengenerators

Gewusst wie: Hinzufügen von Eingabeeigenschaften zu einem Datengenerator

Gewusst wie: Hinzufügen von Ausgabeeigenschaften zu einem Datengenerator

Gewusst wie: Registrieren von benutzerdefinierten Datengeneratoren

Gewusst wie: Erstellen von benutzerdefinierten Datengeneratoren

Konzepte

Übersicht über die Erweiterbarkeit von Datengeneratoren

Referenz

Microsoft.VisualStudio.TeamSystem.Data.DataGenerator

Weitere Ressourcen

Erstellen von benutzerdefinierten Datengeneratoren

Exemplarische Vorgehensweisen für Datenbankumgestaltungen