Modularização! Vamos debater?
Olá amigos do clube, tentei procurar e não achei em nenhuma lugar informações para a modularização de um sistema. Pois bem, queria debater com os nobres amigos, esta questão, para que outros amigos com dúvidas possam ter um tópico sobre isso o qual podem sanar as dúvidas..
Bem, eu estive pensando... eu queria fazer um sistema, com módulos, no estilo do Protheus, da microsiga, alguém conhece? Pois bem, ele parece ter um compilador incluso no próprio sistema, o qual o usuário programa as telas e conexoes e tals, compila, e ele grava isso em um ´banco de dados´ de módulos, o qual poderá ser chamado posteriormente... a questão da compilação a gente poderia usar um compilador for win32 gratuito como o freepascal, que inclusive tem o lazarus (que podemos tirar como exemplo), mas a questao eh: como vincular os novos ´modulos´, ao sistema principal? como usar a conexao com o banco de dados, do sistema principal, vendo que me parece ser em 3 camadas....
Bem, pensei nesta possíbilidade, mas poderia ser somente um módulo mesmo, em dll, ou até em bpl, sei lá.. mas que eu faça acesso pelo módulo principal...
Bem, é isso... estou aberto a quaisquer sugestões...
[]s
Bem, eu estive pensando... eu queria fazer um sistema, com módulos, no estilo do Protheus, da microsiga, alguém conhece? Pois bem, ele parece ter um compilador incluso no próprio sistema, o qual o usuário programa as telas e conexoes e tals, compila, e ele grava isso em um ´banco de dados´ de módulos, o qual poderá ser chamado posteriormente... a questão da compilação a gente poderia usar um compilador for win32 gratuito como o freepascal, que inclusive tem o lazarus (que podemos tirar como exemplo), mas a questao eh: como vincular os novos ´modulos´, ao sistema principal? como usar a conexao com o banco de dados, do sistema principal, vendo que me parece ser em 3 camadas....
Bem, pensei nesta possíbilidade, mas poderia ser somente um módulo mesmo, em dll, ou até em bpl, sei lá.. mas que eu faça acesso pelo módulo principal...
Bem, é isso... estou aberto a quaisquer sugestões...
[]s
Titanius
Curtidas 0
Respostas
Lucianobarreto
22/08/2005
Nem pensei nessa sua possibilidade de ter um compilador, mas eu acharia bem complicado de fazer. Em recente pesquisa aqui no clube achei mais fácil modularizar por executáveis, uma vez que esses somente são executados se chamados pelo programa principal. Por enquanto está indo bem legal.
GOSTEI 0
Titanius
22/08/2005
Certo amigo Luciano, porém a intencao eh utilizar o mesmo executavel, ou seja, o executavel principal, eh MDI Form, e os modulos seriam DMI Child... ou poderia ser varios executaveis -como o seu, deste que ao chama-los, deveriam aparecer como um Frame, ou seja, o ´executavel-modulo´, ficaria ´preso´ ao executavel principal...
Mas como vc fez com a conexao ao banco? cada ´executavel-modulo´ seu tem uma?
[]s
Mas como vc fez com a conexao ao banco? cada ´executavel-modulo´ seu tem uma?
[]s
GOSTEI 0
Lucianobarreto
22/08/2005
Certo amigo Luciano, porém a intencao eh utilizar o mesmo executavel,
É, realmente esse não é o caso do meu sistema, eu estou fazendo cada módulo separado, que são eles(Cadastro, Vendas, Estoque, Produção, Relatórios, ...), que são chamados por um Principal.
ou seja, o executavel principal, eh MDI Form, e os modulos seriam DMI Child...
O meu executavel principal fica preso, uma vez que você só consegue fechar o mesmo se não existir nenhum módulo aberto. O Principal verifica se existe modulo aberto e o modulo verifica se existe principal.
Mas como vc fez com a conexao ao banco? cada ´executavel-modulo´ seu tem uma?
Sim, cada executável tem uma conexão, sendo que o principal tem conexão também, mas somente com as tabelas de controle de acesso.
GOSTEI 0
Adriano Santos
22/08/2005
Nem pensei nessa sua possibilidade de ter um compilador, mas eu acharia bem complicado de fazer. Em recente pesquisa aqui no clube achei mais fácil modularizar por executáveis, uma vez que esses somente são executados se chamados pelo programa principal. Por enquanto está indo bem legal.
Acredito que seja bastante complicada implementação de um sistema como o exemplo do Protheus. Além do mais precisaríamos fazer um treinamento bem detalhado do sistema depois de pronto, para que o usuário consiga configurar tudo sozinho e tals.
A modularização conforme o [b:b066cfc110]Luciano Barreto[/b:b066cfc110] mencionou, com executáveis separados, pra mim é mais viável. Eu já trabalhei com um sistema assim e funciona perfeitamente. Quanto a conexão com o banco, cada executável tem a sua.
É muito mais simples, com certeza.
GOSTEI 0
Nerdex
22/08/2005
Saindo um pouco do assunto principal - use o Pascal Script™ 3.0 para criar o teu compilador. É o que deu origem ao Inno Setup.
O melhor instalador de softwares da atualidade.
[url]http://www.remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}[/url]
O melhor instalador de softwares da atualidade.
[url]http://www.remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}[/url]
GOSTEI 0
Titanius
22/08/2005
Certo amigos, porém gostaria mesmo de apenas uma conexão, pois no meu caso, a empresa tem 50 computadores.... e o sistema terá no mínimo uns 10 módulos principais, só aí seriam 100 conexões... no caso do PasclScript, pensei nele tbm, porem tem como ele fazer algum tipo de conexao com o banco de dados? Teria algum exemplo mais fundo dele?
[]s
[]s
GOSTEI 0
Lucianobarreto
22/08/2005
Bom.. Ai para o seu caso ainda daria pra fazer da forma dos executáveis, porém o PRINCIPAL teria que servir de camada de acesso ao banco. Mas mesmo que o seu sistema tenha vários módulos e usuários, as conexões vão se únicas, pois o cara não vai acessar todos os módulos ao mesmo tempo, ou vai? Caso sim realmente eu acho que não seja muito bom para o lado do servidor...
GOSTEI 0
Titanius
22/08/2005
eh justamente isso q eu to querendo :d, que o principal, seja a camada de acesso aos dados, ou seja, sem ele os ´modulos´ nao funcionariam, poderia até ser varios executaveis, desde que eles usem a conexao do principal... e com isso, daria até pra fazer do jeito de compilador e tals.. :d, mas isso eh outra historia... :d
Mas como eu faria pra ter acesso dos modulos ao principal?
Nota.: Meu sistema está usando ClientDataSet, via ConnetionBroker e Socket pra conectar ao servidor...
[]s
Mas como eu faria pra ter acesso dos modulos ao principal?
Nota.: Meu sistema está usando ClientDataSet, via ConnetionBroker e Socket pra conectar ao servidor...
[]s
GOSTEI 0
Lucianobarreto
22/08/2005
Cara, eu nunca fiz esse tipo de coisa, mas de uma olhada no link abaixo que creio poder te ajudar.
http://www.clubedelphi.net/novo/colunistas/LaercioQueiroz/02.asp
http://www.clubedelphi.net/novo/colunistas/LaercioQueiroz/02.asp
GOSTEI 0
Titanius
22/08/2005
Não seria isso não.. :(
No caso eu teria no meu principal o ConnectionBroker, que conecta com o servidor, e os ClientDataSets dos ´modulos´ teria q ligar no CB do principal... como sera q se faz isso?
[]s
No caso eu teria no meu principal o ConnectionBroker, que conecta com o servidor, e os ClientDataSets dos ´modulos´ teria q ligar no CB do principal... como sera q se faz isso?
[]s
GOSTEI 0