Condividi tramite


Procedura: lavorare non in linea con servizi delle applicazioni client

Aggiornamento: novembre 2007

È possibile utilizzare servizi dell'applicazione client in modalità non in linea quando i servizi dell'applicazione client ASP.NET AJAX ai quali si connette l'applicazione in uso non sono disponibili. In questo modo è possibile autenticare utenti, recuperarne i ruoli e recuperarne o salvarne le impostazioni Web utilizzando una cache dati locale. In modalità non in linea, tutte le risposte del servizio vengono inserire automaticamente nella cache locale senza richiedere modifiche al codice.

Lo stato non in linea viene archiviato sul disco rigido locale nel percorso indicato dalla proprietà Application.UserAppDataPath. Questo significa che lo stato non in linea viene archiviato in base all'utente e all'applicazione. Quando l'applicazione è in modalità non in linea, tutte le chiamate che normalmente verrebbero indirizzate al servizio remoto saranno invece disponibili nella cache di dati locale. Per impostazione predefinita, i valori non in linea vengono archiviati sul file system locale. In alternativa, è possibile configurare l'applicazione per utilizzare un database SQL Server oSQL Server Compact Edition versione 3.5. Per ulteriori informazioni, vedere Procedura: configurare i servizi delle applicazioni client.

Nella seguente procedura viene descritto come specificare la modalità non in linea quando l'applicazione è configurata per utilizzare i servizi dell'applicazione client. Per istruzioni sul testing completo delle funzionalità dei servizi dell'applicazione client, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.

Per attivare la modalità non in linea nell'applicazione

  1. Assicurarsi che l'applicazione sia configurata correttamente per utilizzare i servizi dell'applicazione client in modalità non in linea, come descritto in Procedura: configurare i servizi delle applicazioni client. Si selezionerà in genere l'opzione Salva hash della password localmente per consentire l'accesso non in linea, consentendo di autenticare gli utenti mentre l'applicazione è non in linea. Potrebbe inoltre essere opportuno impostare il valore Timeout cache servizio ruolo su un grande valore per impedire le informazioni sui ruoli dallo scadere in modalità non in linea.

  2. Impostare la proprietà static ConnectivityStatus.IsOffline su true. Nell'esempio di codice seguente viene illustrata l'impostazione di questa proprietà in un gestore eventi CheckBox.CheckedChanged in modo che l'utente possa attivare o disattivare la modalità non in linea.

    Private Sub checkBox1_CheckedChanged( _
        ByVal sender As Object, ByVal e As EventArgs) _
        Handles checkBox1.CheckedChanged
    
        ConnectivityStatus.IsOffline = checkBox1.Checked
    
    End Sub
    
    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ConnectivityStatus.IsOffline = checkBox1.Checked;
    }
    

Programmazione efficiente

Nel codice di esempio in questo argomento viene illustrato il più semplice utilizzo della modalità non in linea in un'applicazione del client Windows. Potrebbe essere opportuno aggiungere altro codice che viene eseguito quando l'applicazione ritorna in modalità in linea. È ad esempio possibile riconvalidare l'utente senza avvisi per garantire che le chiamate al servizio remoto vengano eseguite correttamente anche se il cookie di autenticazione scade. È inoltre possibile aggiornare la cache delle impostazioni Web locale e il servizio delle impostazioni Web remoto con qualsiasi modifica apportata durante la modalità non in linea. Per un esempio di codice che illustri questi comportamenti, vedere Procedura dettagliata: utilizzo di servizi delle applicazioni client.

Vedere anche

Attività

Procedura: configurare i servizi delle applicazioni client

Procedura dettagliata: utilizzo di servizi delle applicazioni client

Concetti

Cenni preliminari sui servizi delle applicazioni client

Riferimenti

ConnectivityStatus.IsOffline

Altre risorse

Servizi applicazioni client