Procedura dettagliata: creazione di un generatore dati personalizzato
Aggiornamento: novembre 2007
Quando si sviluppa lo schemadel database, è possibile testare più efficacemente le modifiche proposte riempendo un database di test con dati che rappresentano quanto più possibile quelli di produzione. I generatori di dati personalizzati forniscono dati di test che soddisfano le specifiche in modo più accurato rispetto ai generatori di dati incorporati. Ad esempio, è possibile creare un generatore per riempire una colonna della tabella con nomi casuali da un elenco predeterminato oppure con numeri compresi in un intervallo specificato. Per ulteriori informazioni, vedere Cenni preliminari sulla generazione di dati.
In questa procedura dettagliata viene creato un generatore personalizzato che consente di generare un valore intero casuale compreso tra zero e un limite superiore specificato dall'utente del generatore. In questa procedura dettagliata vengono eseguite le attività seguenti.
Creare una classe che eredita da Generator.
Creare una proprietà di input per specificare il limite superiore dei dati da generare.
Creare una proprietà di output da utilizzare come output del generatore.
Eseguire l'override del metodo OnGenerateNextValues per generare i dati.
Per informazioni sui problemi di sicurezza da tenere presente prima di creare un generatore di dati personalizzato, vedere Protezione dei generatori di dati.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei seguenti elementi:
- Visual Studio Team Edition for Database Professionals
Per creare un generatore personalizzato
Creare un progetto Libreria di classi e denominarlo TestGenerator.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Aggiungi riferimento.
Verrà visualizzata la finestra di dialogo Aggiungi riferimento.
Fare clic sulla scheda .NET.
Nell'elenco Nome componente selezionare Microsoft.VisualStudio.TeamSystem.Data, quindi scegliere OK.
(Facoltativo, solo Visual Basic) In Esplora soluzioni fare clic su Mostra tutti i file ed espandere il nodo Riferimenti per verificare il nuovo riferimento.
Nella parte superiore della finestra Codice aggiungere la seguente riga di codice prima della dichiarazione di classe:
Imports Microsoft.VisualStudio.TeamSystem.Data.DataGenerator
using Microsoft.VisualStudio.TeamSystem.Data.DataGenerator;
Rinominare la classe Class1 in TestGenerator.
Attenzione:
Per impostazione predefinita, il nome assegnato alla classe è quello visualizzato nell'elenco della colonna Generatore nella finestra Dettagli colonna. Specificare un nome che non sia in conflitto con il nome di un generatore incorporato o di un altro generatore personalizzato.
Public Class TestGenerator End Class
public class TestGenerator { }
Specificare che la classe eredita da Generator, come illustrato nell'esempio seguente:
Public Class TestGenerator Inherits Generator End Class
public class TestGenerator: Generator { }
Scegliere Salva tutto dal menu File.
Aggiunta di proprietà di input e output al generatore
Nella sezione precedente è stata creata una classe che eredita dalla classe Generator. In questa sezione verrà aggiunta una proprietà di input e di output alla classe. Le proprietà di input vengono visualizzate in fase di progettazione nella finestra Proprietà e possono essere utilizzate per configurare il generatore. Le proprietà di output contengono i valori utilizzati per generare i dati e indicano inoltre i tipi di dati che è possibile ottenere tramite il generatore.
Per aggiungere una proprietà di input e di output
Creare una variabile membro denominata mLimit, come illustrato nell'esempio seguente:
Dim limitValue As Integer
int limitValue;
Creare una proprietà denominata Limit che imposta e restituisce la variabile membro mLimit, come illustrato nell'esempio seguente:
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;} }
Aggiungere InputAttribute alla proprietà Limit, come illustrato nell'esempio seguente:
<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
Creare una variabile membro denominata mRandom, come illustrato nell'esempio seguente:
Dim randomValue As Integer
int randomValue;
Creare una proprietà di sola lettura denominata RandomNumber e che restituisce la variabile membro mRandom, come illustrato nell'esempio seguente:
Public ReadOnly Property RandomNumber() As Integer Get Return randomValue End Get End Property
public int RandomNumber { get {return randomValue;} }
Aggiungere OutputAttribute alla proprietà RandomNumber, come illustrato nell'esempio seguente:
<Output()> _ Public ReadOnly Property RandomNumber() As Integer
[Output] public int RandomNumber
Scegliere Salva tutto dal menu File.
Override del metodo OnGenerateNextValues
Visual Studio Team Edition for Database Professionals chiama il metodo OnGenerateNextValues di ogni generatore per ogni set di valori necessario. Quando si crea un generatore di dati, è necessario sottoporre questo metodo a override per fornire la logica che genera valori per ciascuna delle proprietà di output.
Per eseguire l'override del metodo OnGenerateNextValues
Creare una variabile membro che corrisponde a un'istanza della classe Random, come illustrato nell'esempio seguente:
Dim random As New Random
Random random = new Random();
Nota:
In questo passaggio viene creato un generatore di dati non deterministico. Per creare un generatore di dati deterministico, passare la proprietà Seed come argomento del costruttore Random.
Eseguire l'override del metodo OnGenerateNextValues, come illustrato nell'esempio seguente:
Protected Overrides Sub OnGenerateNextValues() randomValue = CInt(random.NextDouble * Limit) End Sub
protected override void OnGenerateNextValues() { randomValue = (int)(random.NextDouble() * Limit); }
Scegliere Salva tutto dal menu File.
Firma del generatore
Prima della registrazione è necessario firmare tutti i generatori di dati personalizzati con un nome sicuro.
Per firmare il generatore con un nome sicuro
Scegliere Proprietà TestGenerator dal menu Progetto.
Nella scheda Firma selezionare la casella di controllo Firma assembly.
Nella casella Scegli un file chiave con nome sicuro fare clic su <Nuova...>.
Nella casella Nome file di chiave digitare TestGeneratorKey.
Digitare e confermare una password, quindi scegliere OK.
Quando si genera la soluzione, il file di chiave verrà utilizzato per firmare l'assembly.
Scegliere Salva tutto dal menu File.
Scegliere Genera soluzione dal menu Genera.
È stato creato un generatore di dati personalizzato.
Passaggi successivi
Ora che il generatore di dati è stato compilato, è necessario registrarlo nel computer prima di utilizzarlo. È possibile registrare manualmente il generatore di dati, come descritto in Procedura dettagliata: registrazione di un generatore di dati personalizzato oppure compilare un progetto di distribuzione per registrare automaticamente il generatore di dati.
Vedere anche
Attività
Procedura dettagliata: distribuzione di un generatore dati personalizzato
Procedura: aggiungere proprietà di input a un generatore di dati
Procedura: aggiungere proprietà di output a un generatore di dati
Procedura: registrare generatori di dati personalizzati
Procedura: creare generatori di dati personalizzati
Concetti
Cenni preliminari sulla extensibility dei generatori di dati
Riferimenti
Microsoft.VisualStudio.TeamSystem.Data.DataGenerator