How to: Work Offline with Client Application Services
You can use client application services in offline mode when the Microsoft Ajax application services that your application connects to are unavailable. This enables you to authenticate users, retrieve user roles, and retrieve or save user Web settings by using a local data cache. In offline mode, all service requests automatically go to the local cache without requiring changes to your code.
The offline status is stored on the local hard disk at the location indicated by the Application.UserAppDataPath property. This means that the offline status is stored on a per-user, per-application basis. When your application is in offline mode, all calls that would normally go to the remote service will access the local data cache instead. By default, offline values are stored on the local file system. Alternatively, you can configure your application to use a SQL Server or SQL Server Compact Edition version 3.5 database. For more information, see How to: Configure Client Application Services.
The following procedure describes how put your application into offline mode when your application is configured to use client application services. For guidance on end-to-end testing of client application services features, see Walkthrough: Using Client Application Services.
To put your application in offline mode
Ensure that your application is properly configured to use client application services in offline mode, as described in How to: Configure Client Application Services. You will typically select the Save password hash locally to enable offline login option, enabling you to authenticate users while the application is offline. You might also want to set the Roles service cache timeout value to a large value to prevent the role information from expiring in offline mode.
Set the static ConnectivityStatus.IsOffline property to true. The following code example demonstrates setting this property in a CheckBox.CheckedChanged event handler so that the user can enter or exit offline mode.
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; }
Robust Programming
The example code in this topic demonstrates the simplest usage of offline mode in a Windows client application. You might want to add more code that executes when your application returns to online mode. For example, you can silently revalidate the user to make sure that remote service calls will not fail because of an expired authentication cookie. Additionally, you can update the local Web settings cache and the remote Web settings service with any changes that were made while offline. For example code that demonstrates these behaviors, see Walkthrough: Using Client Application Services.
See Also
Tasks
How to: Configure Client Application Services
Walkthrough: Using Client Application Services
Reference
Concepts
Client Application Services Overview