Fórum como desenvolver em modulos #257665
09/11/2004
0
gostaria de saber como e qual seria a forma mais indicada para mim poder estar desenvolvendo em modulos...
exemplo: terei um sistema com o modulo financeiro e o de cadastro
como o financeiro ficará muito grande e provavelmente o cadastro tb pois haverá diversos tipos de cadastro no sistema, ficará ruim se estiver tudo junto... haverá muita informação junta, muitos formularios...
a ideia não é dividir em executaveis, mais dividir o codigo, de forma que eles possam se comunicar entre si! o financeiro deverá comunicar com o cadastro para indicar um cliente... coisa do tipo...
alguem de uma luz ai!
valeu
Mrcdlf
Curtir tópico
+ 0Post mais votado
09/11/2004
Mas, na minha opinião, já que você está começando a esboçar seu software, utilize UML para definí-lo. Caso não conheça, faça um curso, vale a pena, posso garantir. Fica tudo muito organizado no final.
Boa sorte,
Buosi.
Buosinet
Gostei + 1
Mais Posts
09/11/2004
Mrcdlf
eu já estou estudando UML
utilizo data modules
mais gostaria de separar mais o sistema... como disse fazer tipo modulos
gostaria de saber mesmo como posso separar os forms... para não ficar tudo junto!?
Gostei + 0
09/11/2004
Gurc
Caso você queira módulos portáveis entre linguagens use as famosas DLL, senão, certamente o mais aconselhável são os pacotes BPL. Outras vantagens da modularização é que você pode ligá-los dinamicamente ao executável, carregar só os módulos necessários, dentre outras.
Na ClubeDelphi do mês passado (eu acho), saiu um artigo explicado bem o básico dessa técnica.
Se quiser saber mais sobre isso estamos a disposição.
Um Abraço,
Gustavo
Gostei + 0
09/11/2004
Michaell
Qual seria a segurança de um pacote BPL com formulários? Afinal, todos os meus Forms estarão em um Servidor... Ótimo, isso não quer dizer que qualquer um que ´entenda´ ou tenha conhecimento de quais Forms eu tenho dentro do BPL poderia acessá-los e... tsc tsc ?!
[]´s
Gostei + 0
09/11/2004
Gurc
Espero ter exclarecido melhor, agora.
Gustavo Royer Chaurais
Gostei + 0
09/11/2004
Michaell
Colega,
BPL é uma extensão de um arquivo binário gerado pela compilação de packages (.DPK) do Delphi. Vale lembrar que, ao desenvolvermos aplicativos, pensemos bastante em segurança... OK?! Tanto os usuários do seu sistema, quanto os arquivos que compõem seu software devem estar em segurança... Sejam dll´s, bpl´s, exe´s...
[]´s
Gostei + 0
10/11/2004
Gurc
Colega,
BPL é uma extensão de um arquivo binário gerado pela compilação de packages (.DPK) do Delphi. Vale lembrar que, ao desenvolvermos aplicativos, pensemos bastante em segurança... OK?! Tanto os usuários do seu sistema, quanto os arquivos que compõem seu software devem estar em segurança... Sejam dll´s, bpl´s, exe´s...
[]´s[/quote:45bb7295fc]
Certamente, devemos pensar sempre em segurança, mas temos modos de implementar segurança apenas no executável. Dependendo do tipo de projeto, como o de administração de prefeituras, ao qual estou incluido, podemos implementar as regras de ligação com o banco na aplicação principal. Deste modo, as classes implementadas nos pacotes não terão direito de alterar, inserir ou deletar dados. No máximo serão acessadas as telas pelos arquivos de recurso para visualização, o que não significaria problemas na quebra de segurança da aplicação. Tudo dependerá do nível de segurança requerido para aplicação. Acho que ficou melhor agora.
Gustavo Royer Chaurais
Gostei + 0
10/11/2004
Michaell
Colega, começou a melhorar... Mas como funcionaria? Você poderia postar algum exemplo? Você tem suas classes nos formulários que estão nos arquivos .BPL que implementam as regras de negócio e na aplicação principal teria suas classes de persistência? Mais ou menos isso?
Gostei + 0
10/11/2004
Gurc
Vou tentar te dar alguns toques e vou ver se hoje à noite sobra um tempo pra fazer um exemplo.
- Crie um pacote e coloque uma unit dentro dele, pode ser um formulário;
- Não esqueça de colocar um RegisterClass([i:c3f703025f]ClasseDoFormNovo[/i:c3f703025f]) na seção [b:c3f703025f]initializaton[/b:c3f703025f] dessa unit;
- Compile e salve o pacote;
- Na mesma pasta crie uma aplicação;
- Crie nela um método que será chamado para carregar o módulo (pacote) e associe-o a um botão, por exemplo;
- No método coloque, mais ou menos, o seguinte:
(...) var AModulo: HModule; AClasseDoForm: TFormClass; AForm: TForm; begin AModulo := LoadPackage(´NomeDoPacote.bpl´); if AModulo > 0 then begin AClasseDoForm := TFormClass(GetClass(´NomeDaClasse´)); if Assigned(AClasseDoForm) then begin AForm := AClasseDoForm.Create(Application); try AForm.ShowModal; finally FreeAndNil(AForm); end; end else raise Exception.Create(´Classe não encontrada.´); UnloadPackage(AModulo); end else raise Exception.Create(´Pacote não encontrado.´); end; (...)
- Rode e teste.
Como eu disse, vou tentar fazer um exemplo melhor, nem testei esse. Mas isso já é o básico para poder carregar um módulo/pacote dentro da aplicação e trabalhar com ele, certo? Para trabalhar com propriedades do Form, como SqlConnection (uma das quais uso) deve-se fazer uso de métodos da Unit TypInfo.
Até mais,
Gustavo Royer Chaurais
Gostei + 0
10/11/2004
Andremuller
Gostei + 0
10/11/2004
Gurc
Nossa, e não é só isso... não sei se já citei mas a manipulação de strings com DLLs é totalmente complicada e fica dependente do Delphi, a não ser que usamos PChars. Já tive muitos bugs com manipulação de eventos... putz, hoje uso DLLs apenas para serem usadas por outras aplicações, como, por exemplo, a última situação que usei foi uma em que iriamos refazer apenas um sistema de uma prefeitura. Um outro, feito em VB, se ligaria a uma DLL nossa. Nesses casos não tem como fugir.
É isso mesmo, concordo plenamente contigo.
Gustavo Royer Chaurais
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)