Criando um auto-update para o seu sistema
Danilo Buzar (e-mail) trabalha com programação web desde 2001, principalmente com as linguagens cliente-servidor ASP e IntraWeb. Também possui conhecimentos em DHTML, Java Script, PHP, CSS, SQL Server e Access.
Olá leitores do iMasters!
É com grande satisfação que escrevo meu primeiro artigo para o iMasters. Meu desafio foi escrever um artigo que fosse útil e ao mesmo tempo fácil de ser implementado e/ou modificado por vocês. Espero que vocês gostem da qualidade da matéria e, nas próximas, continuarei me esforçando para manter o bom nível de escrita e didática nelas!
Bom, nesta matéria falo sobre um assunto que muitos de nós ficamos com dúvidas de como começar a implementar, o ambiente a se distribuir e qual forma mais eficaz de fazê-lo. Estamos falando em como atualizar dinamicamente sistemas feitos em VB 6 e que, na maioria das vezes, estas aplicações estão sendo utilizadas em ambientes críticos e não podem haver bugs que causam implicações na dinâmica dos trabalhos.
Abaixo temos o cenário do nosso ambiente de rede fictício:
01 Servidor
05 Máquinas cliente em ambiente de produção01 Máquina de desenvolvimento do aplicativo
Temos abaixo os componentes usados em nosso programa:
Formulários: frmPrincipal.frm
Componentes: pBar (Progress Bar) e *txtLog (TextBox)Classes (Módulos): ModPrincipal.bas
* Usado para armazenar as informações em run-time do atualizador e posteriormente serem gravadas em arquivo.
Já vimos o básico para o início do projeto, então, mãos a obra!
** Nesta parte irei explicar somente os pontos mais importantes do código para resumir a matéria e não deixá-la muito extensa. Em anexo você encontra o projeto para download.
frmPrincipal
No Load do Form eu faço todas as configurações iniciais como inibição do form, centralização e o principal: atribuição dos caminhos dos arquivos a serem atualizados.
Nesta função, o programa compara as datas dos arquivos a serem atualizados. Caso a condição seja satisfeita o programa chama a subrotina que atualiza os arquivos, caso contrário o atualizador se auto-finaliza.
Nesta Sub o programa utiliza a API [sigla]FindWindow[/sigla] do Windows para verificar o Handle da janela informada e caso encontre, automaticamente fecha a aplicação informada.
Esta sub é importante para manter o backup dos arquivos atualizados e caso haja algum problema de atualização, basta reverter o processo.
Abaixo temos o fluxograma do cenário exemplo
Fluxograma do cenário
Portanto, vimos na matéria que esta aplicação não é algo de difícil de desenvolver, porém, este processo envolve alguns outros pontos importantes que temos que nos atentar, como: Horário de atualização, quantidade de atualizações e se for o caso, analisar uma distribuição ordenada.
Pessoal, a matéria chegou ao seu fim, e espero que este artigo tenha um bom proveito para vocês. Espero vê-los em uma próxima ocasião. Até mais!