Condividi tramite


Procedura dettagliata: creazione di un'applicazione connessa occasionalmente

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). La sincronizzazione viene configurata nella finestra di dialogo Configura sincronizzazione dati.

Oltre alla finestra di dialogo Configura sincronizzazione dati, è possibile utilizzare anche la Configurazione guidata origine dati per configurare la sincronizzazione. Nella configurazione di un dataset tipizzato, selezionare l'opzione Abilita memorizzazione nella cache del database locale nella pagina Seleziona oggetti di database della procedura guidata. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un'applicazione connessa occasionalmente tramite la Configurazione guidata origine dati.

In questa procedura dettagliata vengono fornite istruzioni specifiche per lo sviluppo di un'applicazione connessa occasionalmente.

In particolare, verranno illustrate le seguenti attività:

  • Creare una nuova applicazione Windows Form.

  • Aggiungere una nuova Cache database locale al progetto.

  • Configurare le impostazioni di sincronizzazione per eseguire le attività descritte di seguito:

    • Configurare le connessioni dati al database server.

    • Configurare la sincronizzazione per creare un nuovo database locale.

    • Selezionare le tabelle nel database da sincronizzare con l'applicazione.

  • Aggiungere un controllo DataGridView al form per visualizzare i dati dal database locale.

  • 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 quanto elencato di seguito:

  • Accesso alla versione SQL Server del database di esempio Northwind. Per ulteriori informazioni, vedere 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 OCSWalkthrough come nome del progetto.

    Nota

    Poiché la finestra di dialogo Configura sincronizzazione dati è supportata nei progetti Visual Basic e C#, creare il nuovo progetto in uno di questi linguaggi.

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

    Il progetto OCSWalkthrough viene creato e aggiunto a Esplora soluzioni.

Aggiunta di un file di sincronizzazione al progetto

Il passaggio successivo per la creazione di un'applicazione connessa occasionalmente prevede l'aggiunta o la creazione di un database locale nel client. Per aggiungere un database locale da poter sincronizzare con il database remoto, è necessario aggiungere un modello Cache database locale al progetto. I file della Cache database locale (file sync) vengono aggiunti ai progetti mediante la finestra di dialogo Aggiungi nuovo elemento.

Per aggiungere un file di impostazioni di sincronizzazione a un progetto

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Fare clic sul modello Cache database locale e digitare NorthwindCache.sync nella casella Nome.

  3. Scegliere Aggiungi.

    Il file NorthwindCache.sync viene aggiunto a Esplora soluzioni e viene visualizzata la finestra di dialogo Configura sincronizzazione dati.

Configurazione della sincronizzazione dei dati

La configurazione della sincronizzazione dei dati prevede le seguenti attività:

  • Fornire una connessione dati al database remoto. Si tratta della connessione al server.

  • Fornire una connessione dati al database locale o creare un database nuovo sul client, come illustrato in questa procedura dettagliata. Si tratta della connessione al client.

  • Selezionare le tabelle dalla connessione remota da utilizzare nell'applicazione. Le query condivise sono denominate tabelle nella cache.

  • Per ogni tabella aggiunta al database locale, selezionare le colonne necessarie per risolvere le differenze tra le modifiche e la tabella in cui archiviare gli elementi eliminati. Per ogni tabella sono necessarie colonne specifiche per tenere traccia dei record nuovi e modificati, oltre a una tabella per tenere traccia dei record eliminati.

Configurazione delle connessioni dati

Verrà ora impostata la connessione al server per connettersi al database remoto, ovvero il database esterno all'applicazione. È possibile connettersi a un database di SQL Server Compact 3.5 esistente utilizzando la connessione client oppure è possibile creare un nuovo database locale mediante la finestra di dialogo Configura sincronizzazione dati. Per questa procedura dettagliata, verrà creata una connessione al database server e verrà utilizzata la connessione client predefinita per creare automaticamente un nuovo database client (Northwind.sdf) nel progetto.

Per impostare le connessioni dati per i database server e client

  1. Selezionare una Connessione server alla versione SQL Server del database Northwind oppure fare clic su Nuovo per creare una nuova connessione alla versione SQL Server del database Northwind. Per ulteriori informazioni, vedere Procedura: creare una connessione dati al database Northwind.

  2. Lasciare il valore predefinito di Northwind.sdf (nuovo) per la Connessione client. In questo modo viene creato un nuovo database di SQL Server Compact 3.5 che viene aggiunto al progetto.

    Dopo avere selezionato la connessione al server, nella finestra di dialogo Configura sincronizzazione dati viene visualizzato un elenco delle tabelle disponibili nel database remoto sul server e viene abilitato il pulsante Aggiungi.

    Nota

    Il pulsante OK non è abilitato in quanto non è stata selezionata alcuna tabella per la sincronizzazione. Nella sezione successiva viene descritto come aggiungere le tabelle e abilitare il pulsante OK.

Selezione e configurazione delle tabelle da utilizzare offline

Verranno ora selezionate le tabelle da aggiungere al database client e da sincronizzare con l'applicazione. Per ogni tabella aggiunta al database client, selezionare le colonne di rilevamento necessarie per risolvere le differenze tra le modifiche e la tabella per archiviare gli elementi eliminati. Lasciare le impostazioni predefinite nella finestra di dialogo Configura sincronizzazione dati per creare le colonne di rilevamento e la tabella degli elementi eliminati. In questa procedura dettagliata verranno utilizzate le impostazioni predefinite.

Per configurare le tabelle per la memorizzazione nella cache locale

  1. Fare clic su Aggiungi per aprire la finestra di dialogo Configura tabelle per uso offline.

  2. Selezionare la tabella Customers.

  3. Lasciare tutti i valori predefiniti. Scegliere OK.

    La tabella Customers viene aggiunta all'elenco Tabelle nella cache.

  4. Nella finestra di dialogo Configura sincronizzazione dati scegliere OK.

    Le colonne di rilevamento e la tabella degli elementi eliminati vengono create nel server. Il database Northwind.sdf viene creato nel progetto e sincronizzato per la prima volta.

  5. Selezionare la tabella Customers nella Configurazione guidata origine dati, quindi fare clic su Fine.

    NorthwindDataSet.xsd viene aggiunto al progetto e vengono chiuse tutte le finestre di dialogo.

Abilitazione della sincronizzazione nell'applicazione

I passaggi precedenti hanno consentito di configurare la sincronizzazione dei dati. A questo punto nell'applicazione sono disponibili i seguenti elementi:

  • Database Northwind locale (Northwind.sdf).

  • Informazioni sulle impostazioni di sincronizzazione dei dati (NorthwindCache.sync).

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

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

  • 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

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.

Verrà innanzitutto aggiunto un controllo DataGridView trascinando il nodo Customers dalla finestra Origini dati nel form. Il controllo DataGridView consente di visualizzare la tabella Customers dalla cache del database locale (il database Northwind.sdf presente nel progetto) in modo da poter 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 in Form1. Impostare le proprietà Name e Text rispettivamente su SynchronizeButton e 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 che dichiara la variabile syncStats viene descritta nella sezione successiva.

    ' 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);
    

Verifica 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 del 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 nella griglia.

  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 del 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());
    

Verifica 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 del 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 nella griglia.

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