Condividi tramite


Procedura: configurare la sincronizzazione dei dati in un'applicazione

Se l'applicazione utilizza dati di un database remoto che non devono essere continuamente recuperati dal database o che non sono sempre disponibili, è possibile utilizzare un database locale per archiviare i dati nel computer client con l'applicazione.

Ad esempio, nel caso di un'applicazione di inventario che utilizza dati di diverse tabelle di un database, il numero degli articoli disponibili in magazzino per ogni singolo pezzo rappresenta un dato importante che viene continuamente modificato, pertanto l'applicazione deve riflettere sempre i valori correnti nel database. Tuttavia, nell'applicazione viene visualizzato anche un elenco delle aziende di spedizione valide che raramente viene modificato. Queste aziende di spedizione valide vengono archiviate nella tabella Shippers e non devono essere recuperate dal database ogni volta che viene inviata una query sui dati. Archiviando la tabella Shippers in una cache di database locale, è possibile ridurre il numero di roundtrip non necessari effettuati dall'applicazione al database remoto. Archiviare i dati che non vengono modificati di frequente o che vengono modificati sulla base di una pianificazione definita in una cache di database locale.

Per archiviare i dati localmente, la cache di database locale utilizza un database di SQL Server Compact 3.5. È possibile utilizzare un database di SQL Server Compact 3.5 esistente come cache di database locale. Se ancora non si dispone di un database locale, è possibile impostare la finestra di dialogo Configura sincronizzazione dati per crearne uno nuovo.

Dopo avere aggiunto un database locale all'applicazione e inserito i dati necessari nella finestra di dialogo Configura sincronizzazione dati, si deve ancora aggiungere il codice nell'applicazione per iniziare la sincronizzazione. Dopo aver correttamente sincronizzato i dati, è necessario anche aggiungere il codice per popolare la tabella nel dataset dal database locale.

Nota

La finestra di dialogo Configura sincronizzazione dati consente di configurare Servizi di sincronizzazione Microsoft per ADO.NET solo per gli scenari di download. In altri termini, dopo avere configurato la sincronizzazione dei dati utilizzando la finestra di dialogo Configura sincronizzazione dati, la chiamata a Microsoft.Synchronization.Data.SyncAgent.Synchronize comporterà solo l'aggiornamento del database locale con le modifiche rilevate nel database remoto. Le modifiche apportate ai dati del database locale non verranno caricate nel database remoto. Dopo aver configurato la sincronizzazione dei dati utilizzando la finestra di dialogo Configura sincronizzazione dati, è possibile abilitare i caricamenti a livello di codice (sincronizzazione bidirezionale) durante la sincronizzazione. Per ulteriori informazioni, vedere Procedura: configurare un database locale e remoto per la sincronizzazione bidirezionale.

Aggiunta di una cache di database locale a un progetto

È possibile configurare le applicazioni per memorizzare nella cache locale i dati aggiungendo un file sync al progetto e configurandolo tramite la finestra di dialogo Configura sincronizzazione dati. È possibile aggiungere i file con estensione sync ai progetti tramite la finestra di dialogo Aggiungi nuovo elemento.

Nella seguente procedura vengono illustrati i passaggi fondamentali necessari per configurare la sincronizzazione dei dati. Per esempi che utilizzano dati reali, vedere la Procedura dettagliata: creazione di un'applicazione connessa occasionalmente.

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 configurare la sincronizzazione dei dati

  1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  2. Fare clic sul modello Cache database locale.

  3. Specificare un nome alternativo o mantenere il nome predefinito LocalDataCache1.sync.

  4. Scegliere Aggiungi.

    Il file sync viene aggiunto al progetto e viene visualizzata la finestra di dialogo Configura sincronizzazione dati.

  5. Impostare la Connessione server sul database remoto al quale ci si vuole connettere.

  6. Impostare la Connessione client sul database SQL Server Compact 3.5 locale utilizzato per archiviare i dati localmente. Se non si dispone di un database locale, è possibile lasciare l'impostazione predefinita NomeDatabase.sdf (nuovo) per creare un nuovo database nel progetto. Il nome del nuovo database si baserà sul nome del database presente nella Connessione server.

    Nota

    Per impostazione predefinita, il pulsante OK viene abilitato solo dopo aver aggiunto una tabella all'area Tabelle nella cache.

  7. Fare clic su Aggiungi per aprire la finestra di dialogo Configura tabelle per uso offline, quindi selezionare e configurare le tabelle di database da aggiungere alla cache di database locale.

  8. Selezionare le tabelle di database da aggiungere alla cache di database locale e configurare tutte le impostazioni seguenti:

    • Dati da scaricare:

      Modifiche nuove e incrementali dopo la prima sincronizzazione

      Questa impostazione recupera i record del server modificati dopo l'ultima sincronizzazione dei dati. Alla prima sincronizzazione, viene scaricata l'intera tabella.

      Intera tabella ogni volta

      Questa impostazione elimina la tabella locale e la sostituisce con la versione del server.

    • Confronta aggiornamenti con

      Impostare questa opzione sul nome della colonna della tabella selezionata utilizzata per rilevare quando è stato effettuato l'ultimo aggiornamento di un record. Per impostazione predefinita, nell'elenco viene visualizzata qualsiasi colonna definita come datetime o timestamp. Se la tabella non contiene una colonna per tenere traccia dei record modificati, è possibile lasciare l'impostazione predefinita LastEditDate (nuovo) che creerà automaticamente la colonna di rilevamento.

    • Confronta inserimenti con

      Impostare questa opzione sul nome della colonna della tabella selezionata utilizzata per rilevare quando vengono aggiunti nuovi record alla tabella. Per impostazione predefinita, nell'elenco viene visualizzata qualsiasi colonna definita come datetime o timestamp. Se la tabella non contiene una colonna per tenere traccia dei nuovi record, è possibile lasciare l'impostazione predefinita CreationDate (nuovo) che creerà automaticamente la colonna di rilevamento.

    • Sposta elementi eliminati in

      Impostare questa opzione sulla tabella del server database utilizzata per archiviare i record eliminati. Per impostazione predefinita, nell'elenco viene visualizzata qualsiasi tabella denominata nomeTabella_Deleted o nomeTabella_Tombstone. Se il database non contiene una tabella per archiviare i record eliminati, è possibile lasciare l'impostazione predefinita nomeTabella**_Tombstone (new)** che creerà automaticamente la tabella degli elementi eliminati.

      Nota

      Definire queste impostazioni per ogni tabella da configurare per l'utilizzo offline.

  9. Per impostazione predefinita, le opzioni Generazione script sono impostate automaticamente per generare ed eseguire gli script sul lato server utilizzati per configurare il server database. Se questi script non sono necessari o se non si dispone dell'accesso al server database, è possibile deselezionare un'opzione ed eseguire manualmente gli script o modificare le tabelle. Se non è necessaria alcuna modifica al server, non viene generato alcuno script.

    Nota

    Questi script consentono di aggiungere le colonne di rilevamento alle tabelle selezionate, creare le tabelle per archiviare gli elementi eliminati e aggiungere alcuni trigger necessari per tenere traccia delle operazioni di inserimento, aggiornamento ed eliminazione eseguite nelle tabelle impostate per la memorizzazione nella cache locale.

  10. Scegliere OK.

  11. Fare clic su Mostra esempio di codice per aprire la finestra di dialogo Esempio di codice che fornisce un frammento di codice che avvia il processo di sincronizzazione. È possibile copiare questo frammento di codice negli Appunti e quindi inserirlo nel programma.

  12. Facoltativamente, impostare le opzioni Avanzate.

    Le opzioni Avanzate della finestra di dialogo Configura sincronizzazione dati forniscono le impostazioni che consentono di controllare la sincronizzazione delle tabelle separatamente o in un'unica transazione. Inoltre, consentono la separazione del codice per le applicazioni a più livelli.

    1. Sincronizza tabelle in una sola transazione. Per impostazione predefinita, questa opzione non è selezionata e tutte le tabelle vengono sincronizzate singolarmente. Se si verificano errori, viene eseguito il rollback delle modifiche solo per le tabelle con errori. Se si seleziona questa opzione, tutte le tabelle vengono sincronizzate in una singola transazione. Se si verificano errori, viene eseguito il rollback di tutte le modifiche per tutte le tabelle.

    2. Crea componenti sincronizzazione Per impostazione predefinita, i componenti di sincronizzazione vengono generati sia per il client che per il server. È possibile impostare questa opzione su Solo client o Solo server per soddisfare i requisiti dell'applicazione.

    3. Percorso progetto server. Per impostazione predefinita, i componenti di sincronizzazione per il server vengono generati nel progetto corrente. Impostare questa opzione per generare i componenti di sincronizzazione per il server in un progetto Visual Basic o Visual C# nella soluzione.

    4. Percorso progetto client. Per impostazione predefinita, i componenti di sincronizzazione per il client vengono generati nel progetto corrente. Impostare questa opzione per generare i componenti di sincronizzazione per il client in un progetto Visual Basic o Visual C# nella soluzione.

Una volta fornite le informazioni necessarie nella finestra di dialogo Configura sincronizzazione dati, aggiungere il codice all'applicazione per avviare la sincronizzazione.

Nota

Con la sincronizzazione dei dati viene aggiornato il database locale e non la tabella del dataset o un altro oggetto dell'applicazione. Ricordare di ricaricare l'origine dati dell'applicazione con i dati aggiornati dal database locale. Ad esempio, chiamare il metodo TableAdapter.Fill per caricare la tabella dati del dataset con i dati aggiornati dal database locale.

Per avviare la sincronizzazione

  • Se è stato copiato il codice dalla finestra di dialogo Esempio di codice nella sezione precedente, ora è possibile incollarlo nell'applicazione. Altrimenti, inserire nell'applicazione il codice riportato di seguito nel punto in cui si desidera avviare il processo di sincronizzazione:

Vedere anche

Attività

Procedura dettagliata: creazione di un'applicazione connessa occasionalmente

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

Concetti

Cenni preliminari sulle applicazioni connesse occasionalmente

Altre risorse

Applicazioni connesse occasionalmente (memorizzazione nella cache del database locale)