douglasdallacqua Novato

Registrado: Terça-Feira, 31 de Março de 2009 Mensagens: 7
|
Enviada: Sex Ago 13, 2010 2:56 am Assunto: 2-3 Camadas no mesmo aplicativo. Ajuda... |
|
|
Pessoal,
Comecei desbravar o mundo multi-camadas no Delphi 2010, estou lendo alguns
artigos sobre o assunto na net e na Active Delphi(71/72 Fabricio Kawata)...
(74/75/76 Bruno Lichot)... Ótimos por sinal. A grande questão é a seguinte: Hoje
meus aplicativos são todos 2 camadas, basicamente utilizo(no mesmo aplicativo):
1 DataModule(dmServer) c/ SQLConnection, SQLDataSet e DataSetProvider e o
componente LocalConnection(assim meu dmClient enxerga os componentes neste
modulo mesmo estando em 2 camadas)
1 DataModule(dmClient) c/ meus ClientDataSets.
bom, a primeira coisa que fiz foi refazer alguns pontos no código; coloquei
todos os métodos em dmServer e em dmClient adicionei rotinas que consomem os
métodos que estão em dmServer... Exemplo
dmServer -> CurvaABC
dmClient -> ConsomeCurvaABC
até ai tudo tranquilo... mas lembrando que continuo operando em 2 camadas. A
minhas maiores dúvidas são as seguintes.
Preciso consumir métodos em dmServer em 2 hipóteses
- 2 camadas - aqui é tranquilo, pois dmClient enxerga dmServer(cláusula uses / LocalConnection)
- 3 camadas - aqui o bixo pega, pois preciso acessar através do componente
TSQLServerMethods o método no servidor DataSnap, então pensei no seguinte:
em dmClient
se 2 camadas
Result := CurvaABC(par1, par2, etc...)
else // 3 camadas
aqui instancio o componente TSQLServerMethod(ligado a um SQLConenction
conectado ao server DataSnap)
defino os parametros
consumo a funcao
end
claro que terei de utilizar uma rotina para varrer o dmClient e definir os
providers dos ClientDataSets conforme a situacao... 2 ou 3 camadas.
Outra questão é o dmServer, pois queria compartilhar essa unit pelo meu
Aplicativo e também pelo meu servidor DataSnap, sendo assim as alterações
refletiriam nos dois. Aqui minha dúvida foi quanto a classe utilizada... minha
aplicação utiliza um TDatamodule e o servidor DataSnap utiliza um
TDSServerModule... fiz um teste na minha aplicacao e defini dmServer como
TDSServerModule e funcionou perfeitamente... posso proceder assim? ou fazer o
contrário, TDataModule no Servidor DataSnap ?
se alguém puder me ajuda agradeço muito... ja revirei a internet, mas não
encontrei algo que oriente nesse respeito...
resumindo, quero que minha aplicação(2 camadas) seja através apenas de uma
configuração, habilitada p uso em 3 camadas.
qualquer sugestão será muito bem vinda.
Douglas |
|