Duvida - Atualização de Sistema modularizado em BPL??

03/02/2006

Olá boa tarde a todos.

Estou pesquisando sobre modularizar usando BPL, e fiquei com uma duvida:

[b:2a4a696eae]Situação:[/b:2a4a696eae]
Estando um aplicativo composto por 1 executavel e 2 blp´s, rodando no servidor, é possivel atualizar as bpl´s mesmo que 1 ou mais usuarios estejam acessando esse aplicativo e uma ou outra blp, sem a necessidade de que os mesmos saiam do aplicativo ou fechem o form da tal bpl em uso?

Isso seria bom, pois disponilizaria meios para poder efetuar atualizações automaticas.

:arrow:

Alexandre Macário


Macario

Respostas

05/02/2006

Macario

Up :arrow:


Responder Citar

05/02/2006

Massuda

...é possivel atualizar as bpl´s mesmo que 1 ou mais usuarios estejam acessando esse aplicativo e uma ou outra blp, sem a necessidade de que os mesmos saiam do aplicativo ou fechem o form da tal bpl em uso?
Como um BPL é uma DLL melhorada, a não ser que ninguém tenha carregado o BPL, provavelmente todos terão que sair do programa. Aliás, não existe nenhuma forma de atualizar um executável que esteja em uso por alguém.


Responder Citar

06/02/2006

Macario

Olá bom dia.

Pensei que utilizando a modulizarição por BPL, a mesma permitiria atualizações independentes.

Tipo:

Entrei no [b:54999ee05f]exe[/b:54999ee05f], nesse exe tenho 2 form, entro no form1. Ai digamos que esse form1 precisa ser atualizado. Se eu fechar ele ´eu teoricamente´ imagino que a [b:54999ee05f]BPL[/b:54999ee05f] deveria ser liberada não é? Ai então eu poderia substitui-la.

:arrow:


Responder Citar

06/02/2006

Massuda

Entrei no [b:c6824954e8]exe[/b:c6824954e8], nesse exe tenho 2 form, entro no form1. Ai digamos que esse form1 precisa ser atualizado. Se eu fechar ele ´eu teoricamente´ imagino que a [b:c6824954e8]BPL[/b:c6824954e8] deveria ser liberada não é? Ai então eu poderia substitui-la.
Sim, desde que seu programa descarreque o BPL via UnloadPackage e ninguém mais esteja usando a BPL. Entretanto, o efeito não será imediato... o Windows ´segura´ ainda por alguns segundos (menos de 1 minuto, acho) o BPL.


Responder Citar

06/02/2006

Macario

Putz. :?

Nesse caso eu teria que trabalhar com toda a aplicação disponivel por usuário, ao invez de centralizar no servidor.

seria algo com

var  lib: HMODULE;
begin
  lib:= LoadPackage(´Teste_form_2.bpl´);
  try
    frm2 := Tfrm2.Create(nil);
    try
      frm2.ShowModal;
    finally
      FreeAndNil(frm2);
    end;

  finally
    UnloadPackage(lib);
  end;


Um detalhe, quando entro no exe, e ja tento alterar a BPL, ele ja esta barrando, dizendo que esta em uso, sendo que não fiz a chamada ainda.


Responder Citar