Atualizando a versão do seu programa VB pela Internet !!!
Quem um dia poderia imaginar que a Internet pudesse chegar ao nível que chegou hoje. Podemos dizer que a Internet é algo muito recente se comparada com outras tecnologias. Podemos dizer também que hoje quase tudo gravita em torno da Web.
Creio que a medida do sucesso de uma tecnologia é o fato de facilitar a vida das pessoas; se uma tecnologia for acessível as pessoas e elas perceberem que com sua utilização a vida fica mais fácil , com certeza ela fará sucesso.
Com a internet o acesso e a transferência de informações é de uma facilidade fantástica ( apesar dos problemas de comunicação ). Podemos acessar qualquer informação , em qualquer lugar do planeta , basta ela estar na Internet. Podemos também transferir arquivos , e , é aqui que eu vou ancorar meu barquinho...
A Transferência de arquivos significa copiar arquivos de um computador para outro. Através deste processo, você pode copiar arquivos de outro computador para seu computador e do seu computador para outro computador.
Um dos principais métodos de transferência de arquivos na Internet usa o protocolo FTP - File Transfer Protocol; Vamos então dar um pequena introdução ao FTP:
O FTP é o principal método de transferência de arquivos na INTERNET. Em princípio, a transferência de arquivos entre dois computadores, pressupõe que você tenha permissão de acesso (username) nos dois sistemas.
No entanto, existe uma forma de contornar esta restrição. Através do uso do serviço de FTP anônimo, você poderá ter acesso a um número muito grande de computadores da INTERNET que possuem arquivos disponíveis para o público. São documentos , imagens , livros , etc..
Usamos o FTP quando temos as seguintes informações:
Vejamos a seguir os principais comandos usados no FTP :
|
Aonde eu estou querendo chegar com toda esta estória de FTP ? Bem...
No VB , como não poderia deixar de ser, podemos empregar esta mesma funcionalidade do FTP em transferir arquivos pela internet ou intranet , basta usar o controle Microsoft Internet Transfer Control ou INET.
Eu já abordei os aspectos básicos do controle INET no artigo - Transferindo arquivos com o VB - por isso vou direto ao objetivo principal deste artigo - Como fazer a atualização de versões do seu programa VB pela internet ?
Imagine você distribuir sua aplicação e dizer ao seu cliente que a atualização da versão é automática pela Internet (como fazem alguns programas - o Norton por exemplo). Você acha que não da conta ? Vamos mostrar que a coisa é mais simples do que parece...
O que vamos atualizar ? Qual a lógica ?
Quando você distribui uma aplicação Visual Basic - independente do instalador que você usou para gerar os discos de distribuição - a primeira instalação deverá ser efetuada de forma completa na máquina do seu cliente de forma a registrar as dll´s e as OCX´s que você usou no seu sistema.
As atualizações posteriores poderão ser feitas pela distribuição do arquivo EXE que você gerar do seu sistema. (desde que você não inclua uma nova OCX ou DLL ). Então para atualizar a versão do sistema . basta o cliente copiar o arquivo EXE que você distribuiu sobrepondo o arquivo anterior.
Para realizar a atualização automática de versão do seu sistema pela internet , você vai precisar disponibilizar em um servidor o seu arquivo EXE e incluir no seu sistema o código para que o programa faça o download do arquivo EXE presente no servidor.
O download do arquivo EXE deverá ser efetuado toda vez que a versão do cliente for diferente da versão disponibilizada no servidor . O seu código vai ter que saber fazer isto . Como ? Uma forma simples de resolver este problema é disponibilizar junto com a nova versão um arquivo texto contendo o número da versão. Então você vai disponibilizar no servidor dois arquivos: o arquivo EXE e um arquivo texto(.TXT) com uma linha informando o número da versão. Em nosso exemplo vou usar um arquivo texto chamado Versao.txt que conterá uma única linha indicando a versão atual disponível.
Criando o código para fazer o Download da nova versão
Agora vamos criar a função que você deverá incluir no seu sistema de forma a poder fazer o download das atualizações. Esta função vai receber dois argumentos : o Local e nome do arquivo temporário que será criando e o endereço URL e nome do arquivo que devera sofre o upload indicando a localização remota do arquivo.
Aqui é que entra em ação o Microsoft Internet Transfer Control e você vai precisar incluir este componente no seu projeto para o código abaixo funcionar:
Public Function Baixa_Versao(LocalArquivo As String
, LocalURLArquivo As String) As Boolean
On error goto Baixa_erro Dim bt() As Byte Open LocalArquivo For Binary Access Write As #1 bt() = Inet1.OpenURL(LocalURLArquivo , icByteArray) Put #1, , bt() Close #1 Baixa_Versao=True Exit Function Baixa_erro: Msgbox "Ocorreu um erro durante a transferência do arquivo !", vbcritical Baixa_versao = False Close#1 End Function |
Para fazer o download de um arquivo chamado teste.txt presente no servidor geocities e salvá-lo no drive c:\teste com nome de baixa.dat você deverá invocar a função assim:
call Baixa_Versao("c:\teste\baixa.dat","http://www.geocities.com/macoratti/teste.txt")
Já temos uma problema resolvido ; vamos a outro problema : Quando o sistema deverá fazer o download ?
Este problema tem duas soluções :
1-) Você incrementa o código para verificar se existe uma conexão internet ativa e quando existir acionar o download
2-) Você deixa isto a cargo do seu cliente , implementando uma opção no menu para que o download seja feito.
Verificando a versão e fazendo o Download
Antes de fazer o download da versão propriamente dita , devemos baixar o arquivo versao.txt e verificar se a versão disponível é mais atual que a versão do sistema. Para fazer isto usamos a função Baixa_Versao que criamos acima.
Vejamos agora o código da função que irá verificar a se a versão disponível é a mais atual:
Public Function Verifica() As Boolean
Dim Atual as Boolean Dim Versao as String Dim Versao_Atual As string Versao_Atual = App.Major & App.Minor & App.Revision Atual = False if Baixa_Versao("c:\versao\atual.txt", "http://www.geocities.com/macoratti/versao.txt") Open "c:\versao\atual.txt" for Input As #1 Line Input #1 , Versao Close #1
Versao=trim(Versao)
Kill "c:\versao\atual.txt"
If Versao <> "" And Versao_Atual < Versao Then Atual = Baixa_Versao("c:\versao\TEMP.EXE", "http://www.geocities.com/macoratti/seu_programa.exe") End If End If Verifica = Atual End Function |
A função Verifica faz o download do arquivo versao.txt , abre o arquivo e compara o número da versão informada com a versão atual do sistema.
Se a versão informada não estiver vazia e se a versão atual for menor que a versão informada efetuamos o download do arquivo EXE disponibilizado.
Creio que com essas informações você já sabe como fazer para atualizar seus aplicativos automaticamente e pela internet.
Hasta la vista
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: