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
Erstellen Sie ein Klassenbibliotheksprojekt mit dem Namen TestGenerator.
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.
Klicken Sie auf die Registerkarte .NET.
Klicken Sie in der Liste Komponentenname auf Microsoft.VisualStudio.TeamSystem.Data und anschließend auf OK.
(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.
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;
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 { }
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 { }
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
Erstellen Sie eine Membervariable mit dem Namen mLimit, wie im folgenden Beispiel dargestellt:
Dim limitValue As Integer
int limitValue;
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;} }
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
Erstellen Sie eine Membervariable mit dem Namen mRandom, wie im folgenden Beispiel dargestellt:
Dim randomValue As Integer
int randomValue;
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;} }
Fügen Sie OutputAttribute zur RandomNumber-Eigenschaft hinzu, wie im folgenden Beispiel dargestellt:
<Output()> _ Public ReadOnly Property RandomNumber() As Integer
[Output] public int RandomNumber
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
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.
Ü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); }
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
Klicken Sie im Menü Projekt auf Eigenschaften von TestGenerator.
Aktivieren Sie auf der Registerkarte Signierung das Kontrollkästchen Assembly signieren.
Klicken Sie im Feld Schlüsseldatei mit starkem Namen auswählen auf Neu.
Geben Sie im Feld Schlüsseldateiname den Namen TestGeneratorKey ein.
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.
Klicken Sie im Menü Datei auf Alle speichern.
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