Condividi tramite


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

  1. Creare un progetto Libreria di classi e denominarlo TestGenerator.

  2. 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.

  3. Fare clic sulla scheda .NET.

  4. Nell'elenco Nome componente selezionare Microsoft.VisualStudio.TeamSystem.Data, quindi scegliere OK.

  5. (Facoltativo, solo Visual Basic) In Esplora soluzioni fare clic su Mostra tutti i file ed espandere il nodo Riferimenti per verificare il nuovo riferimento.

  6. 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;
    
  7. 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
    {
    }
    
  8. Specificare che la classe eredita da Generator, come illustrato nell'esempio seguente:

    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    public class TestGenerator: Generator
    {
    }
    
  9. 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

  1. Creare una variabile membro denominata mLimit, come illustrato nell'esempio seguente:

    Dim limitValue As Integer
    
    int limitValue;
    
  2. 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;}
    }
    
  3. 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
    
  4. Creare una variabile membro denominata mRandom, come illustrato nell'esempio seguente:

    Dim randomValue As Integer
    
    int randomValue;
    
  5. 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;}
    } 
    
  6. Aggiungere OutputAttribute alla proprietà RandomNumber, come illustrato nell'esempio seguente:

    <Output()> _
    Public ReadOnly Property RandomNumber() As Integer
    
    [Output]
    public int RandomNumber
    
  7. 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

  1. 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.

  2. 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);
    }
    
  3. 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

  1. Scegliere Proprietà TestGenerator dal menu Progetto.

  2. Nella scheda Firma selezionare la casella di controllo Firma assembly.

  3. Nella casella Scegli un file chiave con nome sicuro fare clic su <Nuova...>.

  4. Nella casella Nome file di chiave digitare TestGeneratorKey.

  5. Digitare e confermare una password, quindi scegliere OK.

    Quando si genera la soluzione, il file di chiave verrà utilizzato per firmare l'assembly.

  6. Scegliere Salva tutto dal menu File.

  7. 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

Altre risorse

Creazione di generatori di dati personalizzati

Procedure dettagliate sul refactoring dei database