Condividi tramite


Procedura dettagliata: creazione di un'applicazione connessa occasionalmente tramite la Configurazione guidata origine dati

Aggiornamento: Luglio 2008

A partire da Visual Studio 2008 SP1, oltre alla finestra di dialogo Configura sincronizzazione dati è possibile utilizzare anche la Configurazione guidata origine dati per la configurazione della sincronizzazione. Questa procedura dettagliata fornisce istruzioni dettagliate per lo sviluppo di un'applicazione connessa occasionalmente incorporando i servizi di sincronizzazione quando si esegue la Configurazione guidata origine dati.

Le applicazioni connesse occasionalmente sono applicazioni che possono non sempre avere accesso ai dati remoti. Per tale motivo, vengono utilizzati i dati da un database locale che risiede nel client e periodicamente viene eseguita la sincronizzazione dei dati tra il database remoto e il database locale mediante i Servizi di sincronizzazione Microsoft per ADO.NET (spazio dei nomi Microsoft.Synchronization.Data). Per creare una sincronizzazione iniziale è possibile aggiungere una cache del database locale a un'applicazione tramite la finestra di dialogo Aggiungi nuovo elemento o eseguire la Configurazione guidata origine dati. In questa procedura dettagliata verrà eseguita la seconda operazione.

In particolare, verranno illustrate le seguenti attività:

  • Creare una nuova applicazione Windows Form.

  • Eseguire la Configurazione guidata origine dati per creare e configurare un dataset tipizzato che consenta la memorizzazione nella cache del database locale.

  • Creare un Windows Form per visualizzare i dati e confermare la sincronizzazione.

  • Aggiungere il codice per avviare la sincronizzazione tra i database.

  • Aggiungere una finestra di messaggio per visualizzare le informazioni sul numero di record sincronizzati.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei seguenti componenti:

  • Accesso alla versione SQL Server del database di esempio Northwind. Per ulteriori informazioni, vedere la classe Procedura: installare database di esempio.

  • SQL Server Compact 3.5 installato nel computer con Visual Studio in esecuzione.

Creazione dell'applicazione Windows Form

Poiché per verificare che la sincronizzazione sia stata completata correttamente è necessario visualizzare i dati in un Windows Form, il primo passaggio di questa procedura dettagliata prevede la creazione di una nuova applicazione Windows Form.

Nota:

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Per creare la nuova applicazione Windows Form

  1. Scegliere il comando per la creazione di un nuovo progetto dal menu File.

  2. Specificare OCSWalkthrough2 come nome del progetto.

  3. Fare clic sul modello Applicazione Windows Form, quindi scegliere OK. Per ulteriori informazioni, vedere la classe Creazione di applicazioni per Windows.

    Il progetto OCSWalkthrough2 viene creato e aggiunto a Esplora soluzioni.

Creazione di un'origine dati che include una cache del database locale

Nella procedura dettagliata viene dimostrata l'incorporazione di servizi di sincronizzazione in un'applicazione mediante la Configurazione guidata origine dati. Il passaggio successivo consiste pertanto nell'avvio della procedura guidata. Questo passaggio consente di avviare la procedura guidata e creare un dataset basato sulle tabelle Customers del database di esempio Northwind. Nella scelta della tabella di database da aggiungere al dataset, selezionare l'opzione per l'attivazione della memorizzazione nella cache di dati locale.

Per creare un'origine dati che include una cache del database locale

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Nella finestra Origini dati, scegliere Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.

  3. Nella pagina Seleziona un tipo di origine dati, lasciare selezionato il valore predefinito Database, quindi scegliere Avanti.

  4. Nella pagina Seleziona connessione dati, effettuare una delle seguenti operazioni:

    • Selezionare la connessione dati alla versione SQL Server del database di esempio Northwind, se disponibile nell'elenco a discesa.

      -oppure-

    • Fare clic su Nuova connessione per aprire la finestra di dialogo Scegli origine dati o Aggiungi/Modifica connessione e creare una nuova connessione alla versione SQL Server del database Northwind. Per ulteriori informazioni, vedere la classe Finestra di dialogo Aggiungi/Modifica connessione (generale).

  5. Se il database richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.

  6. Scegliere Avanti nella pagina Salva stringa di connessione nel file di configurazione dell'applicazione.

  7. Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.

  8. Selezionare la tabella Customers.

  9. Selezionare Attiva memorizzazione nella cache del database locale.

  10. Fare clic su Avanti nella pagina Seleziona oggetti di database.

  11. Selezionare la tabella Customers nella pagina Scegli tabelle da memorizzare nella cache.

    Nota:

    Lasciare il valore predefinito Incrementale per la Modalità di sincronizzazione. La modalità Incrementale sincronizza unicamente le modifiche apportate sul server dall'ultima sincronizzazione. La modalità Snapshot sostituisce l'intera tabella memorizzata nella cache locale con la tabella corrente sul server. L'intera tabella viene dapprima caricata nella cache del database locale indipendentemente da questa selezione, in modo che sia sempre possibile partire da un insieme completo di dati aggiornati.

  12. Scegliere Fine.

  13. Se la modalità di sincronizzazione di una delle tabelle memorizzate nella cache locale è impostata su Modifiche nuove e incrementali dopo la prima sincronizzazione, è necessario aggiornare il database SQL Server e viene visualizzata la finestra di dialogo Genera script SQL. Per impostazione predefinita, entrambe le opzioni nella finestra di dialogo sono selezionate:

    • Aggiorna server per modifiche incrementali. Selezionare questa opzione per aggiornare automaticamente il server perché venga attivata la sincronizzazione incrementale immediatamente dopo la chiusura della finestra di dialogo.

    • Salva script SQL nel progetto per uso successivo. Selezionare questa opzione per aggiungere al progetto gli script SQL generati, in modo che sia possibile eseguirli sul database SQL Server in un secondo momento. Inoltre, vengono generati e aggiunti al progetto script di annullamento.

  14. Scegliere OK.

Attivazione della sincronizzazione nell'applicazione

Una volta completati i passaggi precedenti per l'esecuzione della Configurazione guidata origine dati, la sincronizzazione dei dati è configurata. A questo punto, nell'applicazione sono disponibili i seguenti elementi:

  • Una versione locale del database Northwind (Northwind.sdf).

  • Un file delle impostazioni di sincronizzazione dei dati (NorthwindCache.sync).

  • Un dataset tipizzato (NorthwindDataSet.xsd) generato dalla Configurazione guidata origine dati. Contiene una tabella Customers popolata con i dati del database locale.

    Viene eseguita una sincronizzazione iniziale e la tabella Customers nella cache del database locale viene sincronizzata con il server database. In altre parole, la tabella Customers nel database SQL Server Compact 3.5 locale (Northwind.sdf) viene popolata con i dati attualmente contenuti nella tabella Customers del database sul server.

  • Una cartella SQLScripts contenente gli script utilizzati per creare le colonne di rilevamento, la tabella degli elementi eliminati e i trigger necessari per tenere traccia delle modifiche sul server.

  • Una cartella SQLUndoScripts contenente gli script utilizzati per rimuovere le colonne di rilevamento, la tabella degli elementi eliminati e i trigger necessari aggiunti al server.

    Nota:

    Gli script SQL vengono creati solo se è necessario apportare modifiche al server. Se nel server è già presente una tabella per gli elementi eliminati con le colonne di rilevamento, gli script non vengono creati.

  • Riferimenti alle seguenti DLL dei Servizi di sincronizzazione Microsoft per ADO.NET:

    • Microsoft.Synchronization.Data

    • Microsoft.Synchronization.Data.Server

    • Microsoft.Synchronization.Data.SqlServerCe

Aggiunta di funzionalità di sincronizzazione all'applicazione

Dopo avere configurato la sincronizzazione dei dati, è necessario aggiungere la funzionalità della sincronizzazione all'applicazione. In particolare, è necessario aggiungere il codice che avvia il processo di sincronizzazione. Verranno aggiunti al form i controlli necessari per visualizzare i dati e avviare il processo di sincronizzazione.

Verrà innanzitutto aggiunto un controllo DataGridView trascinando il nodo Customers dalla finestra Origini dati nel form. DataGridView consente di visualizzare la tabella Customers dalla cache del database locale (il database Northwind.sdf presente nel progetto) in modo che sia possibile verificare la sincronizzazione dei dati tra il database locale e il database remoto. Verrà inoltre aggiunto un pulsante per avviare il processo di sincronizzazione.

Per creare un form con associazione a dati per avviare e verificare la sincronizzazione dei dati

  1. Trascinare il nodo Customers dalla finestra Origini dati in Form1.

  2. Trascinare un controllo Button dalla Casella degli strumenti a Form1. Impostare la proprietà Name su SynchronizeButton e la proprietà Text su Synchronize Now.

  3. Fare doppio clic sul pulsante Sincronizza per creare un gestore eventi Clic sul pulsante e aprire il form nell'editor del codice.

  4. Aggiungere il codice per avviare il processo di sincronizzazione e inserire di nuovo i dati nella tabella Customers del dataset. Il codice nel gestore eventi deve essere analogo al seguente:

    Nota:

    La riga di codice in cui viene dichiarata la variabile syncStats è illustrata più avanti in questo documento.

    ' Call the Synchronize method to synchronize
    ' data between local and remote databases.
    Dim syncAgent As NorthwindCacheSyncAgent = New NorthwindCacheSyncAgent()
    Dim syncStats As Microsoft.Synchronization.Data.SyncStatistics = _
        syncAgent.Synchronize()
    
    ' After synchronizing the data, refill the
    ' table in the dataset.
    Me.CustomersTableAdapter.Fill(NorthwindDataSet.Customers)
    
    // Call the Synchronize method to synchronize
    // data between local and remote databases.
    NorthwindCacheSyncAgent syncAgent = new NorthwindCacheSyncAgent();
    Microsoft.Synchronization.Data.SyncStatistics syncStats;
    syncStats = syncAgent.Synchronize();
    // After synchronizing the data, refill the
    // table in the dataset.
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    

Testing dell'applicazione

Per eseguire il test dell'applicazione

  1. Premere F5.

  2. Con l'applicazione in esecuzione, utilizzare Esplora server/Esplora database, o un altro strumento di gestione di database, per connettersi al database del server remoto e modificare alcuni record.

    1. In Esplora server/Esplora database individuare la tabella Customers sul server database remoto, non la connessione a Northwind.sdf.

    2. Fare clic con il pulsante destro del mouse sulla tabella Customers e scegliere Mostra dati tabella.

    3. Modificare uno o più record ed eseguire il commit della modifica. Spostarsi dalla riga modificata.

  3. Tornare al form e fare clic su Sincronizza.

  4. Verificare che le modifiche al database remoto siano sincronizzate con il database locale e visualizzate nel form.

  5. Chiudere il form. Interrompere il debug.

Recupero delle informazioni da una sincronizzazione

Quando si chiama il metodo Synchronize, non viene semplicemente avviato il processo di sincronizzazione ma viene restituito anche un oggetto SyncStatistics dal quale è possibile accedere alle informazioni sulla sincronizzazione.

Per accedere alle statistiche della sincronizzazione

  • Aprire Form1 nell'editor di codice e aggiungere alla fine del gestore eventi SynchronizeButton_Click, sotto il codice aggiunto nei passaggi precedenti, il codice seguente:

        MessageBox.Show("Changes downloaded: " & _
    syncStats.TotalChangesDownloaded.ToString)
    
    MessageBox.Show("Changes downloaded: " +
        syncStats.TotalChangesDownloaded.ToString());
    

Testing dell'applicazione

Per eseguire il test dell'applicazione

  1. Premere F5.

  2. Con l'applicazione in esecuzione, utilizzare Esplora server/Esplora database, o un altro strumento di gestione di database, per connettersi al database del server remoto e modificare alcuni record.

    1. In Esplora server/Esplora database individuare la tabella Customers sul server database remoto, non la connessione a Northwind.sdf.

    2. Fare clic con il pulsante destro del mouse sulla tabella Customers e scegliere Mostra dati tabella.

    3. Modificare uno o più record ed eseguire il commit della modifica. Spostarsi dalla riga modificata.

  3. Tornare al form e fare clic su Sincronizza.

  4. Verrà visualizzata una finestra di messaggio contenente le informazioni sui record sincronizzati.

  5. Verificare che le modifiche al database remoto siano sincronizzate con il database locale e visualizzate nel form.

Passaggi successivi

A seconda dei requisiti dell'applicazione, è possibile eseguire diverse operazioni dopo la configurazione di una cache database locale a un'applicazione. È possibile ad esempio apportare i seguenti miglioramenti a questa applicazione:

Vedere anche

Attività

Procedura dettagliata: distribuzione di un'applicazione client connessa occasionalmente con il database locale

Concetti

Cenni preliminari sulle applicazioni connesse occasionalmente

SQL Server Compact 3.5 e Visual Studio

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2008

Aggiunto argomento.

Modifica di funzionalità in SP1.