Demonstra Passo a passo: Criando um aplicativo ocasionalmente conectado
Aplicativos Ocasionalmente conectados são aplicativos que nem sempre podem ter acesso a dados remotos. Como nem sempre eles têm esse acesso, eles consomem dados de um banco de dados local localizado no cliente e periodicamente sincronizam os dados entre o banco de dados remoto e o banco de dados local. A sincronização de dados entre bancos de dados local e remoto é facilitada por Microsoft Synchronization Services for ADO.NET (O namespace Microsoft.Synchronization.Data). Essa sincronização é configurada na caixa de diálogo Configure Data Synchronization.
Além de Configurar sincronização de dados caixa de diálogo, você também pode usar o Data Source Configuration Wizard para configurar a sincronização. Durante a configuração de um dataset tipado, selecione a opção de Habilitar o cache do banco de dados local sobre o Escolha seus objetos de banco de dados página do assistente. Para obter mais informações, consulte Demonstra Passo a passo: A criação de um aplicativo ocasionalmente conectado usando o Data Source Configuration Wizard.
Essa explicação fornece instruções passo a passo para desenvolver um aplicativo ocasionalmente conectado.
Durante essa explicação passo a passo, você executará as seguintes tarefas:
Criar um novo aplicativo de Formulários do Windows.
Adicionar um novo Local Database Cache ao projeto.
Configurar as definições de sincronização que executam as seguintes tarefas:
Configurar as conexões de dados ao banco de dados do servidor.
Configure a sincronização para criar um novo banco de dados local.
Selecionar as tabelas no banco de dados que você deseja sincronizar com o seu aplicativo.
Adicionar um controle DataGridView ao formulário para exibir dados do banco de dados local.
Adicionar código para iniciar a sincronização entre bancos de dados.
Adicionar uma caixa de mensagem para exibir informações sobre o número de registros sincronizados.
Pré-requisitos
Para concluir essa explicação passo a passo, você precisa do seguinte:
Acesso à versão SQL Server do banco de dados de exemplos Northwind. Para obter mais informações, consulte Como: Instalar bancos de dados de amostra.
SQL Server Compact 3.5 instalado no computador que está executando o Visual Studio.
Criando o aplicativo de Formulários do Windows
Como você exibirá os dados em um Formulário do Windows (para verificar se a sincronização é bem-sucedida), a primeira etapa nessa explicação passo a passo é criar um novo aplicativo Formulários do Windows.
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio. |
Para criar o novo aplicativo Formulários do Windows
No menu File, crie um novo projeto.
Nomeie o projeto como OCSWalkthrough.
Observação A caixa de diálogo Configure Data Synchronization tem suporte em projetos Visual Basic e C#, portanto, crie o novo projeto em uma dessas linguagens.
Clique no modelo Windows Forms Application e em seguida clique em OK . Para obter mais informações, consulte Criando Aplicativos Baseados no Windows.
O projeto OCSWalkthrough é criado e adicionado ao Solution Explorer.
Adicionando um arquivo de sincronização ao projeto
A próxima etapa na criação de um aplicativo ocasionalmente conectado é adicionar (ou criar) um banco de dados local no cliente. Para adicionar um banco de dados local que você vai poder sincronizar com o banco de dados remoto, você adiciona um modelo Local Database Cache ao seu projeto. Você adiciona arquivos de cache de banco de dados local (arquivos .sync) a projetos, usando a caixa de diálogo Add New Item.
Para adicionar um arquivo de configurações de sincronização a um projeto
No menu Project, clique em Add New Item.
Clique o Cache Local do banco de dados modelo e digite NorthwindCache. Sync no nome caixa.
Clique em Adicionar.
Um arquivo NorthwindCache.Sync é adicionado ao Solution Explorer e a caixa de diálogo Configure Data Synchronization aparece.
Configurando a sincronização de dados.
Configurar a sincronização de dados consiste nas seguintes tarefas:
Fornecer um conexão de dados so banco de dados remoto. Essa é a conexão do servidor.
Fornecer uma conexão de dados ao banco de dados local ou criar um novo banco de dados no cliente, conforme mostrado nessa explicação passo a passo. Essa é a conexão do cliente.
Selecionar as tabelas da conexão remota que você deseja usar em seu aplicativo. Elas são denominadas cached tables.
Para cada tabela que você adiciona ao banco de dados local, selecione as colunas que são necessárias para reconciliar as alterações e a tabela onde armazenar itens excluídos. Cada tabela requer colunas específicas que mantêm controle de registros novos e modificados, junto com uma tabela que mantém controle dos registros que tenham sido excluídos.
Configurando as conexões de dados
Agora você definirá a conexão do servidor para conectar-se ao banco de dados remoto (o banco de dados externo ao seu aplicativo). A conexão do cliente pode se conectar a um banco de dados SQL Server Compact 3.5 existente, ou você pode deixar que a caixa de diálogo Configure Data Synchronization crie um novo banco de dados local para você. Para essa explicação passo a passo, você irá criar uma conexão ao banco de dados do servidor e deixar a conexão de cliente padrão criar automaticamente um novo banco de dados do cliente (Northwind.sdf) no projeto.
Para definir as conexões de dados para os bancos de dados do servidor e do cliente
Selecione uma Server connection para a versão SQL Server do banco de dados Northwind , ou clique em New para criar uma nova conexão para a versão SQL Server do banco de dados Northwind. Para obter mais informações, consulte Como: Criar uma conexão de dados no banco de dados Northwind.
Deixe a valor padrão Northwind.sdf (new) para Client connection. Isso cria um novo SQL Server Compact 3.5 de banco de dados e o adiciona ao seu projeto.
Depois de selecionar a conexão de servidor, a caixa de diálogo Configure Data Synchronization consulta o banco de dados remoto no servidor para obter uma lista de tabelas disponíveis e habilita o botão Add após a lista ser recuperada.
Observação Observe que o botão OK não está habilitado. Isso ocorre porque nenhuma tabela foi selecionada para sincronização. A próxima seção explica como adicionar tabelas, o que habilita o botão OK.
Selecionando e configurando as tabelas que você deseja usar offline
Agora você irá selecionar as tabelas para adicionar ao banco de dados do cliente e sincronizar com o seu aplicativo. Para cada tabela que você adicionar ao banco de dados do cliente, selecione as colunas de rastreamento necessárias para reconciliar as alterações e a tabela para armazenar itens excluídos. Se você deixar as configurações padrão, a caixa de diálogo Configure Data Synchronization criará as colunas de rastreamento e a tabela de itens excluídos. Você usará as configurações padrão nessa explicação passo a passo.
Para configurar tabelas para caching local
Clique em Add para abrir a caixa de diálogo Configure Tables for Offline Use.
Selecione e verifique a tabela Customers.
Deixe todos os valores padrão. Clique em OK.
A tabela Customers é adicionada à lista Cached Tables.
Na caixa de diálogo Configure Data Synchronization, clique em OK.
As colunas de rastreamento e a tabela de itens excluídos são criadas no servidor. O banco de dados Northwind.sdf é criado no projeto e sincronizado pela primeira vez.
Selecione e verifique a tabela Customers no Data Source Configuration Wizard e em seguida, clique em Finish.
NorthwindDataSet.xsd é adicionado ao projeto e todas as caixas de diálogo fecham.
Habilitando sincronização no seu aplicativo
Após concluir as etapas anteriores, a sincronização de dados está configurada. Nesse ponto seu aplicativo contém o seguinte:
O banco de dados local Northwind (Northwind.sdf).
As informações de configuração de sincronização de dados (NorthwindCache.sync).
O dataset tipado NorthwindDataSet.xsd gerado pelo assistente Data Source Configuration. Ele contém uma tabela Customers que preenche a partir do banco de dados local.
Uma pasta SQLScripts que contém os scripts que são usados para criar as colunas de rastreamento, tabela de itens excluídos e disparadores necessários que rastreiam alterações no servidor.
Uma pasta SQLUndoScripts que contém scripts para remover as colunas de rastreamento, tabela de itens excluídos e disparadores necessários que foram adicionados ao servidor.
Observação Scripts SQL são criados somente se modificações precisam ser feitas no servidor. Se o servidor já tiver uma tabela de itens excluídos e colunas de rastreamento, scripts não serão criados.
Referências aos seguintes Microsoft Synchronization Services for ADO.NET DLLs:
Microsoft.Synchronization.Data
Microsoft.Synchronization.Data.Server
Microsoft.Synchronization.Data.SqlServerCe
Depois de configurar a sincronização de dados, você ainda deve adicionar funcionalidade de sincronização ao seu aplicativo. Mais especificamente, você precisa adicionar o código que inicia o processo de sincronização.
Primeiro, você irá adicionar um controle DataGridView arrastando o nó Customers da janela Data Sources para o formulário. O DataGridView irá exibir a tabela Customers a partir do cache de banco de dados local (o banco de dados Northwind.sdf localizado no projeto) para que você possa verificar que os dados estão sincronizando entre os bancos de dados local e remoto. Você também adicionará um botão para iniciar o processo de sincronização.
Para criar um formulário vinculado a dados para iniciar e verificar a sincronização de dados
Arraste o nó Customers da janela Data Sources para Form1.
Arraste um controle Button da ToolBox para Form1 . Defina seu nome propriedade para SynchronizeButton e seus texto propriedade para sincronizar agora.
Clique duas vezes no botão Synchronize Now para criar um manipulador de eventos de clique de botão e abra o formulário no Editor de Códigos.
Adicione código para iniciar o processo de sincronização e, em seguida, preencha novamente a tabela Customers no DataSet. O código no manipulador de eventos deve se parecer com o seguinte:
Observação A linha de código declarando a variável syncStats é explicada na próxima seção.
' 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);
Testando o aplicativo
Para testar o aplicativo
Pressione F5.
Com o aplicativo em execução, use Server Explorer/Database Explorer (ou outra ferramenta de gerenciamento de banco de dados) para se conectar ao banco de dados remoto do servidor e modificar alguns registros.
Em Server Explorer/Database Explorer, localize a tabela Clientes no servidor de banco de dados remoto (não a conexão a Northwind.sdf).
Clique com o botão direito do mouse na tabela Clientes e clique em Show Table Data.
Modifique um ou mais registros e confirme a alteração. (Navegue fora da linha modificada).
Volte para o formulário e clique em Synchronize Now.
Verifique que as modificações ao banco de dados remoto estão sincronizadas com o banco de dados local e exibidas na grade.
Feche o formulário. (Pare a depuração.)
Recuperando informações de uma sincronização
Quando você chama o método Synchronize, ele faz mais do que apenas iniciar o processo de sincronização. O método Synchronize também retorna um objeto SyncStatistics a partir do qual você pode acessar informações sobre a sincronização.
Para acessar as estatísticas de sincronização
Abra Form1 no Editor de códigos e adicione o seguinte código na parte inferior do manipulador de eventos SynchronizeButton_Click, abaixo do código adicionado nas etapas anteriores:
MessageBox.Show("Changes downloaded: " & syncStats.TotalChangesDownloaded.ToString)
MessageBox.Show("Changes downloaded: " + syncStats.TotalChangesDownloaded.ToString());
Testando o aplicativo
Para testar o aplicativo
Pressione F5.
Com o aplicativo em execução, use Server Explorer/Database Explorer (ou outra ferramenta de gerenciamento de banco de dados) para se conectar ao banco de dados remoto do servidor e modificar alguns registros.
Em Server Explorer/Database Explorer, localize a tabela Clientes no servidor de banco de dados remoto (não a conexão a Northwind.sdf).
Clique com o botão direito do mouse na tabela Clientes e clique em Show Table Data.
Modifique um ou mais registros e confirme a alteração. (Navegue fora da linha modificada).
Volte para o formulário e clique em Synchronize Now.
Aparece um caixa de mensagem que contém informações sobre registros sincronizados.
Verifique que as modificações ao banco de dados remoto estão sincronizadas com o banco de dados local e exibidas na grade.
Próximas etapas
Dependendo dos requisitos do seu aplicativo, há várias etapas que você pode querer fazer depois de configurar um cache de banco de dados local em um aplicativo. Por exemplo, você poderia fazer os seguintes aprimoramentos para este aplicativo:
Implementar sincronização bidirecional para que as alterações no cache de banco de dados local possam ser carregadas para o servidor. Para obter mais informações, consulte Como: Configurar um Local e remoto a banco de dados para sincronização bidirecional.
Implemente o aplicativo cliente junto com o cache de banco de dados local. Para obter mais informações, consulte Demonstra Passo a passo: Implantando um aplicativo ocasionalmente conectado do cliente com o banco de dados Local.