DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

BPLs no Delphi - Revista Clube Delphi Magazine 142

Neste artigo abordamos a criação de BPLs e consequentemente a modularização que pode ser obtida com seu uso.





ClubeDelphi 142

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da ClubeDelphi 142


Desenvolver uma aplicação em pacotes (packages) do Delphi é um padrão pouco utilizado entre os desenvolvedores, mas veremos ao longo do artigo que esta prática pode proporcionar várias vantagens. Quando escrevemos e compilamos uma aplicação Delphi, tipicamente é gerado um único arquivo executável que não depende de ninguém para funcionar. Para entender como que uma modularização pode impactar, ao criar um novo aplicativo VCL no Delphi XE 2, salva-lo da forma que foi criado e executá-lo, teremos um executável de 6.75MB. Isso mesmo, quase 7MB. Porém podemos alterar a forma como um executável é gerado, ativando o parâmetro Link with Runtime Packages do menu Project>Options>Packages>Runtime Packages, como mostra a Figura 1.

Nota: A localização do menu apresentado contempla as versões XE e XE 2 do Delphi

Agora o executável gerado possui apenas 2.18MB. O valor padrão do parâmetro de compilação Link with Runtime Packages é false, assim, sempre que construímos uma aplicação Delphi o compilador adiciona no executável gerado todo o código que é necessário para que o mesmo possa ser executado. Por isso o executável é grande, o uso de pacotes (packages) não está sendo empregado.

Definindo package
A definição para package é bem simples. Ela nada mais é do que um tipo especial de DLL que é utilizada por aplicações Delphi e pelo próprio IDE. Não é algo novo, o conceito de packages existe desde a versão 3 do Delphi.
Seu uso torna possível alocar partes de nossa aplicação em módulos separados que podem ser compartilhados com outras aplicações. Outro cenário de vantagem é quando apenas uma pequena parte da aplicação sofre uma atualização, uma correção de bug por exemplo. Se o conceito de packages está em uso, é possível atualizar em seu cliente somente a package necessária e não toda a aplicação.
Existem basicamente dois tipos de packages:
• Runtime – funciona como DLLs padrão, suas funcionalidades estão acessíveis durante a execução do aplicativo;
• Design – utilizada para instalação de componentes no IDE do Delphi e para criação de editores de propriedades diferenciados. Este tipo de package é utilizado apenas pelo Delphi e nunca é distribuído em uma aplicação.

DLLs vs. BPLs
Uma DLL centraliza código que pode ser utilizado por vários aplicativos. É exatamente isso que a torna poderosa, quando retiramos códigos de aplicativos e os colocamos em uma área compartilhada que outros podem acessar. Sem dúvida alguma o melhor exemplo de uso de uma DLL está na própria API dos Windows que é composta por várias DLLs.
É possível inserir em uma DLL um formulário Delphi e reutilizá-lo, outro uso comum é armazenar arquivos de recursos como imagens. Mas antes de comparar uma DLL com uma BPL temos que entender as duas maneiras de se linkar código em um executável: de forma estática ou dinâmica.
"
A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Paulo Quicoli
Editor Geral da revista ClubeDelphi. Formado em processamento de dados pela FATEC-TQ. Atua como Analista de Sistemas na Siplan Control-M unidade Jaboticabal (www.siplancontrolm.com.br), prof. na FATEC-TQ e consultor na NHibernate Brasil (www.nhibernatebrasil.net) Blog:http://quicoli.wordpress.com
O que você achou deste post?

    6 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Francisco Charles De Sousa Silva
Teria um metodo de incluir todas a blps comuns a todos em uma unica pkg, vi uma tem um tuto no site, mais testando não funciona, apresenta vários problemas. Grato.
[há +1 mês] - Responder

 

[autor] Paulo Quicoli
na verdade vc criaria um groupproject com tudo... sobre esse outro tutorial, é melhor vc perguntar por lá.
[há +1 mês] - Responder
 

Francisco Charles De Sousa Silva
Foi no site da devmedia mesmo, vou ver se acho o link depois. grato
[há +1 mês] - Responder
 

Dener Nunes Da Rocha
Olá Paulo, parabéns pelo artigo.

Modularizo meus sistemas com pacotes dinâmicos desde 2004, tinha muitos problemas em empresas com muitos usuários, não dava pra ficar pedindo pra 50 pessoas "sair do sistema" para atualizar, hoje, apenas não deve estar usando a bpl em questão e pronto.

E tem a questão também de meus usuários poderem utilizar a mesma tela ao mesmo tempo, já que não uso form Modal...

Enfim, como você falou, dá trabalho organizar tudo, mas a flexibilidade depois, apenas com sistemas web para ser igual.
[há +1 mês] - Responder

 

Rafael Marin
Bom dia, tenho uma aplicação que não quero disponibilizar o fonte completo para todos os desenvolvedores da empresa mas gostaria que eles conseguissem compilar a parte de código que lhes cabe manter, com BPLs eu consigo resolver isso, você poderia me dar alguma dica ?
[há +1 mês] - Responder

 

[autor] Paulo Quicoli
Olá, acho que vale a pena vc tentar... vc cria tudo o que vc quer esconder como bpls, e depois as carrega dinamicamente... nunca usei para esses fins... faça e depois comente conosco os resultados obtidos.
abraço!
[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03