Mário Guedes
Do que estamos falando?
O Delphi é um
ótimo exemplo de
aplicação modular.
Qual a diferença?
Seu BPL #1
executável
Framework
Delphi
BPL #2
3os
Seu
Seu
Código executável
Você
4.000.000
2.000.000
0
Motivação
Você
– Passa a focar no real problema a ser resolvido e não na tecnologia em volta.
E volta mais cedo para casa.
Sua equipe
– Ninguém fica sobrecarregado. Ninguém fica ocioso.
Temos efetivamente uma equipe.
Sua empresa
– Custa caro manter um software “vivo”.
Seu cliente
– Obtêm respostas rápidas às demandas. Com qualidade e flexibilidade.
Seu consultor
– e-mail no penúltimo slide
Ressalvas
Duas units com o mesmo nome não poderão ser carregadas pela
mesma aplicação. Utilize namespace para evitar ambiguidades.
Para gerar uma lista das dependências estáticas (BPLs e DLLs) sugere-se
o aplicativo Dependency Walker:
http://www.dependencywalker.com/
Ortogonalidade
• OOP
• Padrões de Projetos
• Interfaces
• RTTI e Generics
• ORM
• DDD
• Geradores automáticos de código
• OTA
• Integração contínua
OOP e Padrões de Projeto
• Não é o diretório da BPL que deve ir para a Library Path do Delphi, e sim
o diretório do DCP.
Diretório onde
será gerado a
BPL
Diretório onde
serão gerados os
DCUs
Configurações de um Projeto DPK
Defina o aplicativo que
será utilizado para a
depuração Cuidado! Muitas
configurações são por
plataforma
Diretivas de compilação
Nome do
DCP
Diretório do aplicativo.
Diretório corrente.
• Mas tira a fluidez na hora de codificar, pois o Delphi não conhece a BPL
em questão e portanto não consegue oferecer os métodos,
parâmetros, tipos e etc que estão contidos na BPL.
• Sugere-se então que exporte uma função que retorne uma interface ou
objeto que consiga ser manipulado pelo executável fachada.
• Aqui também entra o Padrão de Projeto “Factory”, pois uma BPL poderá
conter a classe abstrata e outras conterão as classes concretas. Do
ponto de vista do executável só se conhecerá a classe abstrata.
Carga dinâmica - Comandos
EXEMPLOS PRÁTICOS
Proposta dos exemplos
Modularização de Aplicações
Álvaro Esteves Alves
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=719
BPLs no Delphi
Paulo Quicoli
http://www.devmedia.com.br/websys.5/webreader.asp?cat=3&artigo=4709&revista=clubedelphi_142#a-4709
Biblioteca (Computação)
Wikipédia
http://technet.microsoft.com/en-us/sysinternals/bb842062
Muito obrigado!
{
“nome” : “Mário Guedes” ,
“e-mail” : “mario.guedes@arrayof.com.br” ,
“blog” : “http://eugostododelphi.blogspot.com.br”
“perfis” : [
{“twitter” : “eugostododelphi”} ,
{“facebook” : “eugostododelphi”} ,
{“linkedin” : “jmarioguedes”} ,
{“slideshare” : “jmarioguedes”} ,
{“github” : “jmarioguedes”} ,
{“prezi” : “jmarioguedes”}
]
}
Canais Embarcadero
Canais Embarcadero
http://edn.embarcadero.com
http://www.embarcadero.com/br
http://www.facebook.com/DelphiBrasil
http://www.facebook.com/EmbarcaderoBrasil
http://www.embarcadero.com/mvp-directory
http://www.embarcaderobr.com.br/treinamentos/