Nossa,

Vixi o meu esquema tah meio complexo então....kkkk.

Primeiro atualização Off-Line.
1.0. Consiste em atualizar automaticamente todas as estações da rede. 
Como é feito?
1.1. Eu tenho uma tabela no banco chamada Atualizacoes com os campos ID, 
MODULO, VERSAO, ARQUIVO (BLOB); Nela eu guardo o executável própriamente 
dito. Qdo o usuário entra no sistema ele é conectado ao banco e a versão 
atual é checada com a versão que está no banco. Se a dele for inferior 
eu chamo um outro programa pequeno que fecha o módulo que o chamou. Esse 
programa se conecta com o banco e usa o método SaveToFile do DataSet 
para salvar o arquivo do Banco na pasta local.
Se a versão que o cara está abrindo é maior que a do banco então uso 
LoadFromFile pra subir o arquivo executável para dentro da tabela e 
atualizo a versão. Desta forma garanto que todas as máquinas na rede 
esteja com a mesma versão. Blz, morreu.

2.0. A atualização on-line é feita por meio de dois arquivos idênticos 
que ficam na pasta de instalação do executável e na pasta de ftp do meu 
site. Os arquivos são Versoes.amk (pasta local) e Atualizacoes.amk 
(pasta remota). Ambos tem a seguinte estrutura:

[Atualizacoes]
Modulo1=Operacao.exe
Versao=6.1.28
Titulo=Operacao

Modulo2=Cobranca.exe
Versao=6.1.26
Titulo=Cobranca

Tenho um programa chamado Atualizador.exe que faz o download do 
Atualizacoes.amk e compara com o Versoes.amk preenchendo um ListView com 
os módulos que precisam ser atualizados. O arquivo Atualizacoes.amk é 
atualizado meus meus programadores toda vez que uma versão nova é 
enviada ao servidor.

Na verdade são arquivos .INI com extensão alterada. O cara clica em um 
botão Now. Os módulos são fechados automaticamente - já que o programa 
faz o download na mesma pasta dos módulos - por fim os downloads são 
efetuados na pasta de instalação dos módulos como mencionei e boas.

Agora estamos em processo de hiper-automatização. On-line temos uma 
tabela em um banco Firebird com o nome dos clientes, DLL, vesão de DLL e 
caminho fisico remoto dos arquivos. Esse mesmo programa será chamado do 
executável principal automaticamente e em background, ou seja, ficará 
rodando no relógio.

Ao abrir o programa ele conectará ao banco de dados online pra ver se 
existem novas atualizações. Fará as atualizações necessárias em uma 
pasta de diferente do diretório de instalação, pra evitar que o módulo 
não seja atualizado porque está aberto.  Feito isso (os downloads) o meu 
Atualizador vai jogar os arquivos dentro do banco de dados na tabela 
chamada Atualizacoes que já existe hoje.

Desta forma a próxima vez que o cliente abrir o módulo está atualizado e 
não vai nem perceber.

Temos um programa gerenciador e troca e envia a nova versão dos módulos 
para nosso servidor FTP.
Além disso toda vez que o sistema é aberto uma nova verificação é feita, 
uma vez por dia.

Acabaram meus problemas.

Desculpem a biblia.

-- 
Adriano Santos
Desenvolvedor Delphi desde 1998. Professor e programador PHP.
Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP.

Editor Técnico, Colunista e Comissão Editorial da revista ClubeDelphi.
http://www.devmedia.com.br
http://www.clubedelphi.net
http://www.delphitodelphi.blogspot.com






Jorge Ericsson respondeu:
>
> Eu achei interessante a idéia do Claudiney e do Eduardo, mas eu gostaria
> saber como implementar no meu código a checagem na entrada e o MD5.
> Hoje eu apenas coloco um arquivo executavél q baixo via FTP pelo próprio
> programa, mas informo ao usúário q ele deve iniciar o processo.
> Se tiver como vcs me enviarem um pedaço do código por e-mail em PVT 
> para eu
> ter uma idéia, eu agradeço.
> Valew pessoal.
>
> Em 17/10/07, Claudiney Cogo <[EMAIL PROTECTED] 
> <mailto:claudiney-listas%40n2solutions.com.br>> escreveu:
> >
> > Aqui no meu sistema também fiz assim... na entrada do sistema sempre
> > verifico e informo que existe.. ele tem opção de não fazer no 
> momento, mas
> > caso não faça a mensagem vai ficar incomodando toda hora que entrar no
> > sistema.. até ele atualizar. Mas ainda existe um botão na interface do
> > sistema pra executar essa verificação, caso ele queira verificar em 
> qualquer
> > outro momento.
> >
> > _____________________________________
> > Claudiney Cogo
> > N2 Sistemas e Soluções em Informática
> > Av. São Paulo, 172 - 15º Andar - Sala 1505
> > Maringá - Paraná
> > www.n2solutions.com.br
> >
> > ----- Original Message -----
> > From: Eduardo Silva dos Santos
> > To: delphi-br@yahoogrupos.com.br 
> <mailto:delphi-br%40yahoogrupos.com.br> <delphi-br%40yahoogrupos.com.br>
> > Sent: Wednesday, October 17, 2007 10:13 AM
> > Subject: Re: [delphi-br] URGENTE - Dúvidas sobre como informar as
> > atualizações do sistema
> >
> > No meu sistema eu coloquei para verificar se tem atualização assim que o
> > usuário executa o sistema, caso tenha atualização ele avisa que 
> existe uma
> > e
> > faz o download em seguida... colocar para confirmar ou não é complicado,
> > tinha clientes que nao atualizavam a muito tempo.
> >
> > Em 17/10/07, Jorge Ericsson <[EMAIL PROTECTED] 
> <mailto:jericssonsup%40gmail.com><jericssonsup%40gmail.com>>
> > escreveu:
> > >
> > > Olá amigos,
> > >
> > > O controle de versão por mim está tranquilo pq eu coloco o meu
> > executavel
> > > no
> > > meu servidor ftp e sempre q a nova versão eu tenho que ligar para 
> o meu
> > > cliente ou enviar um e-mail solicitando q o mesmo clique em checar 
> novas
> > > atualizações pelo próprio programa. Nesse ponto ele já faz todas as
> > > verificações possíveis.
> > >
> > > Para controla a versão do programa eu tbém já gravo em uma tabela o
> > > realese
> > > gerada pelo delphi.
> > >
> > > O meu problema é criar ou não um serviço q fique checando as 
> informações
> > > no
> > > site ou se coloco no programa para que o próprio usuário ao executar
> > > programa tome a decisão de instalar ou não.
> > >
> > > Hj eu usso o idHTTP para checar se existe ou não atualizações...
> > >
> > > Em 17/10/07, Claudiney Cogo <[EMAIL PROTECTED] 
> <mailto:claudiney-listas%40n2solutions.com.br><claudiney-listas%40n2solutions.com.br>
> > <claudiney-listas%40n2solutions.com.br>>
> > > escreveu:
> > > >
> > > > Olá Jorge.
> > > >
> > > > Hoje eu faço isso de uma forma bem simples. Usando ftp. Eu crio um
> > > arquivo
> > > > zip com a última versão e disponibilizo no ftp. Quando o cliente 
> loga
> > no
> > > > sistema eu verifico a versão que está guardada em uma tabela de
> > > > configurações e comparo com a versão do arquivo no ftp. Eu uso como
> > > versão a
> > > > data do arquivo zip. Dessa maneira sempre que tem um arquivo mais
> > > recente eu
> > > > sei que houve atualização e informo ao usuário que existe, 
> perguntando
> > > se
> > > > quer atualizar no momento. Se sim, baixo usando ftp e descompacto na
> > > pasta
> > > > do sistema. No próximo login, abro um form com um histórico das
> > > atualizações
> > > > disponíveis em cada versão, inclusive a que acabou de baixar, com
> > opção
> > > de
> > > > não abrir mais, ou continuar abrindo toda vez que iniciar o sistema.
> > > >
> > > > Porém não faço verificação se o usuário é administrador do sistema,
> > mas
> > > é
> > > > possível fazer, pois a atualização só acontece depois do login.
> > > >
> > > > Também ainda não uso threads pra isso, mas vou adicionar isso ao
> > sistema
> > > > com certeza, pois o que fica ruim nesse caso é que sempre na entrada
> > do
> > > > sistema ele fica alguns segundos parados esperando a resposta do 
> site
> > > ftp.
> > > >
> > > > Quanto as threads é bem simples de implementar. Tenho alguns 
> exemplos
> > > bem
> > > > fáceis de entender. Caso queira me avise que envio.
> > > >
> > > > Abraço
> > > > _____________________________________
> > > > Claudiney Cogo
> > > > N2 Sistemas e Soluções em Informática
> > > > Av. São Paulo, 172 - 15º Andar - Sala 1505
> > > > Maringá - Paraná
> > > > www.n2solutions.com.br
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Jorge Ericsson
> > > > Sent: Wednesday, October 17, 2007 2:25 AM
> > > > Subject: [delphi-br] URGENTE - Dúvidas sobre como informar as
> > > atualizações
> > > > do sistema
> > > >
> > > > Olá Amigos,
> > > >
> > > > Estou com o problema de definir uma forma eficiente de meus usuários
> > > > visualizarem as novas atualizações do meu sistema.
> > > > Bom eu criei um arquivo no meu servidor onde informo as novas
> > > atualizações
> > > > do meu sistema e preciso que o meu usuário visualize essas 
> informações
> > > > assim
> > > > que o mesmo loga no sistema.
> > > > Mas não estou encontrando a forma correta de informar essas
> > > atualizações.
> > > >
> > > > Preciso testar se o usuário é o administrador, preciso checar as 
> suas
> > > > conexões com a internet e tbém busca as novas atualizações depois de
> > um
> > > > certo tempo de logado no sistema.
> > > >
> > > > Como fazer de forma rápida e eficiente este processo.
> > > >
> > > > Alguém usa Threeds ?
> > > >
> > > > Valew,
> > > >
> > > > Jorge Ericsson S. Pinheiro
> > > > Analista/Projetista de Sistemas
> > > > Ericsson Sistemas e Soluções
> > > > http://www.jericsson.com.br <http://www.jericsson.com.br>
> > > > 61 9227.4785 / 3965.2992 / 3039.1768
> > > > Brasília - DF
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > > __________ NOD32 2596 (20071017) Information __________
> > > >
> > > > This message was checked by NOD32 antivirus system.
> > > > http://www.eset.com <http://www.eset.com>
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > --
> > > Jorge Ericsson S. Pinheiro
> > > Analista/Projetista de Sistemas
> > > Ericsson Sistemas e Soluções
> > > http://www.jericsson.com.br <http://www.jericsson.com.br>
> > > 61 9227.4785 / 3965.2992 / 3039.1768
> > > Brasília - DF
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > .......................................................
> > Eduardo Silva dos Santos
> > DRD Sistemas.
> > (27) 3218-4201
> > MSN: [EMAIL PROTECTED] <mailto:eduardo.drd%40gmail.com> 
> <eduardo.drd%40gmail.com>
> > Site: http://www.drdsistemas.com/ <http://www.drdsistemas.com/>
> > .......................................................
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > __________ NOD32 2597 (20071017) Information __________
> >
> > This message was checked by NOD32 antivirus system.
> > http://www.eset.com <http://www.eset.com>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> -- 
> Jorge Ericsson S. Pinheiro
> Analista/Projetista de Sistemas
> Ericsson Sistemas e Soluções
> http://www.jericsson.com.br <http://www.jericsson.com.br>
> 61 9227.4785 / 3965.2992 / 3039.1768
> Brasília - DF
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.488 / Virus Database: 269.14.13/1075 - Release Date: 17/10/2007 
> 09:38
>   

-- 
Adriano Santos
Desenvolvedor Delphi desde 1998. Professor e programador PHP.
Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP.

Editor Técnico, Colunista e Comissão Editorial da revista ClubeDelphi.
http://www.devmedia.com.br
http://www.clubedelphi.net
http://www.delphitodelphi.blogspot.com

Responder a