BPLs no Delphi

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

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Neste artigo abordamos a criação de BPLs e consequentemente a modularização que pode ser obtida com seu uso. Uma BPL é um recurso do Delphi que permite centralizar recursos (procedimentos, funções, classes, tipos, etc) que podem ser compartilhados por mais de um projeto. Veremos as diferentes formas de se carregar uma BPL e as vantagens de seu uso.

Em que situação o tema é útil:

A criação de BPLs é útil, pois podemos reutilizar código entre projetos, além de que em sistemas grandes, pode se modularizar a carga de recursos. Por exemplo, se criarmos BPLs de acordo com as funcionalidades de um sistema, podemos carregar somente as que estarão em uso, de acordo com o perfil de um usuário logado, ou setor da empresa onde o mesmo está instalado. Outro ponto é que ao dividir um projeto em BPLs, estamos diminuindo o tamanho do executável final, o que facilita em uma atualização de sistema por exemplo (pois menos bytes serão transferidos até o cliente).

Modularização com BPLs:

Uma BPL é conceitualmente muito similar a uma DLL, mas é destinada a sistemas Delphi. É utilizada para centralizar recursos compartilhados, almejando uma reutilização de código e de recursos. Neste artigo abordamos a criação de BPLs, os tipos linkagem oferecidos pelo Delphi, os tipos de carga de BPLs, como inserir formulários nessas BPLs e consumir esses formulários .

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.

Figura 1. Opção Link with Runtime Packages
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:

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados