The Club
quinta-feira, 2 de setembro de 2010
Busca  
Porta 80 Web Hosting
 :: Acessibilidade
Ir para conteúdo principal: ALT + 1
 :: Participe
Seja um autor de CD/DVD de Treinamento
Publique um artigo
Publique uma oportunidade
Publique uma notícia
Publique um curso
Publique uma dica
Publique um código
 :: Informativo
Receba nossos informativos por e-mail.
E-mail:   
 
Digite a palavra abaixo:  
 
 
 :: Oportunidades
Cadastrar oportunidades
Gerenciar suas oportunidades
Cadastrar nova empresa
 :: Especiais
Básico de C++
C++ Builder
Curso ASP.NET 3.5 em VB.NET e C#
Guia Prático de HTML
Testes com Visual Studio Team System 2008
 :: Desenvolvimento
ActionScript
ADO.NET
ASP
ASP.NET
Automação Comercial
C#
C/C++
Coldfusion
CSS
Delphi
Disp. Móveis
HTML
Java
Javascript
LSL (Second Life)
Modelagem
PHP
Python
Sharepoint
Silverlight
SQL
VBA (Office)
Visual Basic
Visual Basic .NET
Visual Fox Pro
WCF/WPF
Web Services
XML
 :: Infra
BizTalk Server
CRM
Exchange Server
ForeFront / Antigen / IAG
Interoperabilidade
ISA Server
Linux
MOF
MS Dynamics CRM
Network
OCS / LCS
Outlook
Powershell e Scripts
Redes
Segurança
System Center e Gerenciamento
Virtualização
Windows
Windows Server
 :: Banco de Dados
Access
Caché
Firebird
Interbase
MySQL
Oracle
SQL Server
Sybase
 :: Gerência
Arquitetura
Ciclo de Vida de Desenvolvimento
Controle de Versão
Estimativas
Metodologias
MOF
Qualidade e Testes
 :: Design
Corel
Flash
Photopaint
Photoshop
 :: Livros
Análise Sistemas
Aplicativos
Banco de Dados
Certificação
Design e CAD
Gerência
Hardware
Internet
Programação
Programação Web
Rede
Segurança
Servidores
Sistemas Operacionais
 :: CDs/DVDs
Desenvolvimento
Infra
Design
 :: E-Books
.NET 2.0 (VS 2005)
.NET 1.1 (VS 2003)
SQL Server
Excel 2007
Excel 2003
Access 2003
ASP 3.0
Delphi
Java
Artigos


MVP Profile
Sincronização de Dados no .NET Framework 3.5
Por: Renato Haddad
MVP, MCPD e MCTS, palestrante em eventos da Microsoft em diversos países, ministra treinamentos focados em produtividade com o VS.NET 2008, ASP.NET 3.5, Reporting Services e Windows Mobile.
Feed de artigos.
Feed de artigos deste autor.
Gere seu feed personalizado  

Sincronização de Dados no .NET Framework 3.5
Publicado em: 16/03/2009

Tecnologias

.Net Framework 3.5, Windows Forms, .Sync

Sumário

Veja como criar um projeto de sincronização de dados entre o SQL Server 2005 no servidor e um banco de dados local na máquina do cliente, podendo ser um desktop, um telefone celular, um Pocket PC.

Introdução

Sincronizar dados entre diferentes fontes sempre foi um problema para qualquer tipo de aplicação, seja uma simples transferência de fotos da máquina digital para o desktop ou ainda de um pen-drive para o servidor. Eu estou falando de aplicações, não de abrir o Windows Explorer e copiar e colar os arquivos. Já no mundo real e corporativo, o que mais tenho visto são aplicações de transferências de dados entre base de dados. Algumas aplicações onde é preciso e condicional o uso de Aplicações Ocasionalmente Desconectadas – OCD – torna-se obrigatório adotar uma arquitetura que permita trabalhar desconectado do servidor. E, quando a conexão for restabelecida, a sincronização é efetuada. Este é o cenário e o foco deste artigo.

Cenário

Um exemplo bem clássico do uso de aplicações desconectadas que precisam ser sincronizadas com o servidor é de força de vendas, onde os vendedores anotam os pedidos dos clientes em um dispositivo móvel, normalmente um smartphone, onde contém uma forma de armazenamento local, seja um banco de dados, um arquivo XML ou TXT. Quando o mesmo tiver uma conexão com a rede, é disparada a sincronização.

Exatamente neste ponto, a sincronização, é que vou abordar como está absurdamente simples de se fazer com o Visual Studio .NET 2008 com o Service Pack 1 (SP1). Note que é obrigatório o uso do SP1 porque o template de SYNC só está disponível nele.

Responda esta pergunta: Você já teve que fazer um programa para sincronizar dados entre um dispositivo móvel ou uma aplicação desktop com o servidor? Se não, então nunca passou por este trauma. Se sim, sabe muito bem o que estou falando, pois quando falamos que a sincronização é simples, basta copiar e colar os dados da origem para o destino, isto não é verdade. O processo envolve uma série de implicações, por exemplo, consultar se o item existe, qual a regra de negócio a ser aplicada, se o item já foi atualizado, enfim, nada que algumas linhas de programação não resolvam.

Sincronização no VS.NET 2008 SP1

Até parece piada, mas o slogan “seus problemas acabaram” parece ter se tornado realidade. Vocês verão que a quantidade de código a ser criada são praticamente duas linhas, isto mesmo, duas linhas de código para disparar o processo de sincronização. Isto porque obviamente é o framework que fará o trabalho pesado nos bastidores. Então, vamos colocar a mão na massa e criar uma aplicação WinForms que irá criar um banco de dados localmente e quando quisermos sincronizar com o servidor, terá um botão para disparar o código.

Projeto

Abra o Visual Studio .Net 2008 com SP1, e crie um novo projeto do tipo Windows Forms Application chamado SincronizaMSDN na pasta C:\Projetos (ver Figura 1). A linguagem que vou utilizar é o C# mas fique à vontade para usar o VB.NET, é só mudar a sintaxe.

Figura 1 – Novo Projeto

 

Com o projeto criado, é exibido o Form1, deixe-o aí, não vamos mexer nele por enquanto. No Solution Explorer, dê um clique com o botão direito e selecione Add New Item.  Na janela aberta (ver Figura 2), selecione a categoria Data (Dados), em Templates use Local Database Cache e no nome do arquivo digite BancoLocal.sync. Observe que a extensão do arquivo é SYNC (syncronization), ou seja, aqui é o grande pulo do gato que o framework vai se encarregar de montar a estrutura de sincronização.

Figura 2 – Adicionar Local Database Cache

 

Clique no botão Add para adicionar o arquivo. Em seguida é aberta uma janela para configurar os dados, conforme a Figura 3.

Figura 3 – Configuração

 

Aqui você tem várias opções para selecionar o servidor. Clique no botão New e aponte para o respectivo servidor, conforme Figura 4. No meu caso usei o SQL Server local e o banco de dados Northwind. Caso queira trocar o Provider clique no botão Change.

 

Figura 4 – Servidor a ser usado

 

Uma vez definida a conexão, clique no botão OK. Note na Figura 5 que automaticamente a janela Configure Data Synchronization preenche os campos Server Connection com a origem do banco de dados no servidor e o Client Connection que será o banco de dados local. Neste ponto é importante destacar que a extensão do arquivo é SDF. Portanto, esta extensão refere-se ao SQL Compact Edition (o antigo SQL Server CE - http://www.microsoft.com/Sqlserver/2005/en/us/compact-downloads.aspx ), que é gratuito e, acredite sim, pode e deve ser usado para qualquer finalidade de armazenamento de dados. Quero dizer que o SQL Compact Edition está fantástico, você pode usá-lo tanto em desktop, num servidor, num smartphone, num Pocket PC, onde quiser.

Figura 5 – Configuração do Server e do Client







 

Conheça os produtos do autor Renato Haddad

Inclua um comentário sobre o artigo Topo
Elogios e críticas são muito bem vindos, porém o comentário deve ter referência ao artigo em pauta.
O portal e o autor agradecem.
Nome:    
E-mail:      
Comentários:    
Digite a palavra abaixo:  
Para dúvidas técnicas, NÃO UTILIZE ESTE ESPAÇO, utilize nosso fórum de discussão.
http://linhadecodigo.com.br/cs2/forum
 
Comentários sobre o artigo Ver Todos comentários
Como faço para adicionar um progress bar durante a syncronização?
Quem enviou: SIDNEY
Postado em: 16/03/2010 00:00:00
É... uma pena, já trabalhei muito com Compact Framework e tenho que anunciar aos amigos que deixem essa plataforma para se aderirem ao Software Livre com Google Android nos celulares.

O Windows é um péssimo SO para celulares. A história mostrou isso e a microsoft mantém a linha de arrogância em continuar a manter uma porcaria nos dispositivos.

Experimente Google Android... Java like que vai conquistar o mercado. Fácil de desenvolver, estável e simples (não tem esse monte de sigla e parafernálias de componentes).

Quem enviou: Mateus
Postado em: 17/12/2009 00:00:00
Muito bom o post, mas gostaria de saber como utilizar o firebird....
Quem enviou: Paulo Henrique Vieira Nascimento
Postado em: 17/06/2009 00:00:00
oi sergio, que bom que gostou do artigo. Qdo eu vi isto direto com o time de ADO na MS/EUA fiquei tão feliz que há uma nova forma de fazermos sincronização que precisava mostrar à comunidade a facilidade que temos agora.
No seu projeto, vc usou o Sync direto no .sdf do pocket? fique à vontade para responder direto no meu email: rehaddad@msn.com
Quem enviou: Renato Haddad
Postado em: 17/04/2009 00:00:00
Renato, parabéns pelo seu artigo já fiz uma aplicacao em um dispositivo móvel Pocket Pc com sincronização entre as bases de dados do sql server 2005 com o sql server mobile e utilizei exatamente o conceito abordado neste artigo, realmente o vs2008 veio para facilitar a programação de sincronizações entre bases.

Sucesso!
Quem enviou: sergio piter
Postado em: 16/04/2009 00:00:00
Boa tarde,

Por estes e outros motivos que optei por escrever para este site.
Parabens e sucesso !!!
Quem enviou: Jonas Chaves
Postado em: 20/03/2009 00:00:00
Outros artigos do autor Topo
Como fazer Deploy no ASP.NET 4?
Dez razões para adotar o Linq nas aplicações .Net
Formatar dados com o ASP.NET Dynamic Data
ASP.NET Dynamic Data
Como montar um controle ListView do ASP.NET 3.5 com o LINQ?
Vídeo: Como criar e usar Code Snippets no Visual Studio .NET 2008 (Para assinantes)
10 Razões para adotar o ASP.NET 3.5
Vídeo: Dicas e Truques do Visual Studio .NET 2008 - Parte 2 (Para assinantes)
Vídeo: Dicas e Truques do Visual Studio .NET 2008 - Parte 1 (Para assinantes)
Vídeo: Inicializar objetos na linguagem C# 3.0 (Para assinantes)
Vídeo: Truncando dados no GridView (Para assinantes)
Vídeo: Validação de dados em grupo no ASP.NET 2.0 (Para assinantes)
Vídeo: Controle do status da bateria no Windows Mobile 6 (Para assinantes)
Vídeo: Controle Details View no ASP.NET 2.0 (Para assinantes)
Vídeo: Exibir dados no GridView e Details View no ASP.NET 2.0 (Para assinantes)
Vídeo: Filtrando dados com multiplas seleções no SQL Reporting Services 2005
Vídeo: Filtrando dados em relatório no SQL Reporting Services 2005 (Para assinantes)
Vídeo: Formatar linhas e células no SQL Reporting Services 2005 conforme uma condição (para assinantes)
Vídeo: Windows Mobile 6: Pocket para SmartPhone (Para assinantes)
Vídeo: Windows Mobile 6: Banco de Dados (Para assinantes)
Inserindo Hyperlink com parâmetro no GridView do ASP.NET 2.0
Boas razões para adotar o Windows Mobile 6
Windows Mobile 6 Developer Resource Kit
Crie um Álbum de Fotos no Power Point 2007
Filtrar dados na Folha de Dados no MS-Access 2007
Simulando o Hotmail com ASP.NET 2.0
Controles de usuários que só o ASP.NET 2.0 suporta
Voto de paixão: Visual Studio .NET Beta 2, o que é isso?
Saiba porquê desenvolver aplicações para telefones celulares com .NET
Aplicações Móveis no .NET
Publicidade na WEB - Componente AdRotator
Interagindo com DataList em aplicações ASP.NET
Usando componentes com ADO.NET
Dez Razões para Migrar para o ASP.NET
Artigos relacionados Topo
Windows Phone 7 – Ferramenta de desenvolvimento
Construindo uma aplicação Silverlight para Windows Phone 7
Desenvolvendo seu primeiro aplicativo para Silverlight Mobile
Instalando o Android SDK na plataforma Linux
Dicas para melhorar a performance do .Net Compact Framework
MinimizeBox no Celular - Mobile Device
Aplicação para Windows Mobile baseado XML
NUNit para SmartDevices – Visual Studio 2008 Team System
Desenvolvendo uma Aplicação – Contatos para Dispositivos Móveis em C#
Sistema de Controle de Gasolina Mobile - iGas
SQL Server Compact Edition: Criando um framework para acesso a dados em dispositivos móveis
Transforme seu celular num controle remoto Linux
Criando Interfaces PalmOS
Palm OS: Função BeginDownload
Tutorial: Instalando e Configurando o RemoteSync
Instalando arquivos PRC/PDB via linha de comando
HB++: Utilizando MsgBox em Português e outros idiomas
HB++: Gerenciamento de Memória no Palm OS
Palm OS: Linguagem HB++ (Parte 2)
Palm OS: Linguagem HB++ (Parte 1)
Criando um aplicativo móvel com armazenamento em XML e sincronização de dados com a WEB - Parte 1
Palm OS: Criptografia
Palm OS: Segurança da Informação
MSMQ Message Queueing usando o Compact Framework 2.0
Introdução ao BREW
Transmitindo imagens por WebServices e consumindo em um Pocket PC (Vídeo)
Funcionalidades Esquecidas do Compact Framework 3 - Adicionando ToolTips a uma ToolBar
Elaborando a sua estratégia móvel
Palm: Criando Conduits com Wizard Conduit Generator do HB++
Usando a porta infravermelha com o Compact Framework
Produtos relacionados Topo
Livro: Domine seu iPhone
CD/DVD: CD de Treinamento Criando Aplicações para Dispositivos Móveis - Aplicações Móveis com a Plataforma .Net para Iniciantes
Livro: HB++ Guia de Consulta
Livro: Desenvolvendo Aplicações PALM com NS BASIC
Livro: Visual Studio Team System - Team Foundation Server
© Copyright 2001-2010 Codeline Editora, Comércio e Tecnologia Ltda. | Política de privacidade e de uso | Anuncie | Fale conosco

» Site hospedado na Porta 80 Web Hosting «
Nossos números
Dicas: 1.314
Códigos/scripts: 279
Funções de VBScript : 90
Funções JScript : 05
Livros: 1.805
Notícias: 2.623
Artigos: 3.020
Cases: 14
Oportunidades: 4.591
Vídeos .Net: 484
Publicidade

Conheça a loja do Linha de Código.

Microsoft indica Linha de Código.

Assine a Revista Mundo .NET
Portal de Vídeos .NET - os melhores vídeos .NET estão aqui
O que você fará com o Visual Studio 2010?
Revista Codificando .Net

Siga-nos no Twitter

Linha de Código no Orkut
Fórum de discussão do portal Linha de Código
Feeds
Oportunidades
Notícias
Artigos
Artigos personalizado
       (Por assunto)
Artigos personalizado
       (Por autor)
Portal Vídeos .NET
Portal Vídeos Delphi
LC Blog
       (Onde você faz a notícia)
Promoções
Promoção Wordpress + Tabless (válido somente para pagamento via boleto bancário)
Promoção Wordpress + Tabless (válido somente para pagamento via boleto bancário)
De: R$ 149,70
Por: R$ 99,80
Promoção PHP + MYSQL Intelimax (válido somente para pagamento via boleto bancário)
De: R$ 308,00
Por: R$ 219,00
Promoção Especial Infra
De: R$ 175,95
Por: R$ 136,00
Promoção: Portal de Vídeos .Net + CD Novidades das Linguagens (válido somente para pagamento via boleto bancário)
De: R$ 162,00
Por: R$ 89,00
Promoção VSTS (válido somente para pagamento via boleto bancário)
De: R$ 219,00
Por: R$ 146,00
CDs/DVDss
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
Por: R$ 59,00
DVD Curso de CorelDraw X4
Por: R$ 79,90
DVD Curso de Fireworks CS4
Por: R$ 49,90
DVD Curso de Indesign CS4
Por: R$ 55,00
DVD Curso de Efeitos Digitais
Por: R$ 49,90
Livros
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
De: R$ 129,00
Por: R$ 77,40
Foundation FLASH CS3 para Designers
Ciência Moderna
De: R$ 139,00
Por: R$ 83,40
ALGORITMOS O Guia Essencial
Alta Books
De: R$ 64,90
Por: R$ 58,40
Treinamento Prático em Dreamweaver
Digerati Books
Por: R$ 14,95
Estudo Dirigido de Adobe Photoshop CS4 em português - Para Windows
Erica
De: R$ 88,00
Por: R$ 74,80
E-Books
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Por: R$ 30,00
Manual de Estudos - Exame 70-291 - Windows Server 2003 (606 páginas) - entrega via download
Por: R$ 30,00
Dominando MS – Visio ® em 20 Passos - Melhores Práticas em Gestão de Projetos (entrega via download)
Por: R$ 30,00
MS-Project® 2007 - Melhores Práticas de Gestão de Projetos - Dominando MS – Project ® em 20 Passos (e-book com entrega via download)
Por: R$ 20,00
Banco de dados com C# e Visual Studio .Net 2005 (entrega via download)
Por: R$ 20,00
Os 10+ | Autores do dia
Israel Aéce
Júlio Cesar Fabris Battisti
Anderson Patricio
Luiz Felipe de Freitas
Marcio Franco
Eric C M Oliveira
Robert Martim
Ramon Durães
Alessandro de Oliveira Faria
Alfred Reinold Baudisch
Os 10+ | Artigos do dia
HTML Básico
HTML Avançado
Criando aplicativos para o Orkut
PL/SQL - Procedures e Funções
Tutorial de Tabelas Dinâmicas no Excel – Parte 1
Como configurar Conexão Remota no SQL Server 2005
WCF – Gerenciamento de Instância
Básico de C++: Estrutura de um programa em C++
ASP.NET 2.0 - Explorando o GridView
Tutorial: Desenhando com o Corel Draw