Fórum Como passar um Array contendo Nomes de Classes para o servidor de aplicação ? #1644

05/01/2009

0

Olá Consultores,   Gostaria de saber como passar um Array contendo nomes de classes para a minha aplicação servidora? E como instanciar estas classes através dos nomes que foram passados pelo array?   Ex:   - Na aplicação cliente teríamos:   Conexao.AppServer.CRIAR_INSTANCIAS([Classe 1,Classe 2,Classe 3...Classe N]);   - Na aplicação servidora:   a função teria que receber o array contendo os nomes das classes e criar as instâncias correspondentes.   Atenciosamente, Alexandre Amaral.   P.S.: Utilizo Delphi 7 + BSS      
Alexandre Neto

Alexandre Neto

Responder

Posts

07/01/2009

Rodrigo Mourão

Olá Alexandre, como vai ???

Observando a sua dúvida não vi muito sentido em realizar esta operação. Não que ela não tenha sentido mas é que sem saber a real intenção ou o real motivo fica meio obscuro.

Digo isto pois você diz que quer aprender a instanciar a classe no servidor pelo nome, isso é relativamente simples através de RegisterClass porém e os valores para as propriedades.

Assim peço se possível que você me descreva a necessidade de fazer isso, como são estas classes (persistente, transiente). Com isso, dependendo da situação podemos ver uma solução mais viável pois eu trabalho com Objetos em Servidores de Aplicação e usando CDS mesmo, é uma técnica que me atende ou então utilizar COM+.

Fico no aguardo !!

Abs !!
Responder

Gostei + 0

07/01/2009

Alexandre Neto

Olá Rodrigo,   É o seguinte, não quero trabalhar com CDS, então eu faço uso do seguinte expediente:   Eu serializo minhas classes (TPessoa, TPedido, etc) com suas propriedades devidamente preenchidas e envio para o servidor, lá existe uma função que recebe essas classes, deserializa e aplica a persistência. Isto já está funcionando bem.   Qual a razão da minha dúvida? Gostaria de criar uma função genérica que recebesse uma lista contendo os nomes das classes e fizesse o procedimento necessário (instanciasse as classes e aplicasse a persistência através do DAO). Para não ter que criar várias funções.   []s Alexandre Amaral.
Responder

Gostei + 0

07/01/2009

Rodrigo Mourão

Olá,

Bem posso até gravar um vídeo lhe mostrando como instanciar uma classe a partir de uma string. Porém na função vc vai passar o nome das classes, no servidor instanciar, mas os valores como serão passados para a classe ??

Por que não trabalha com automação, utilizando create remote, acho isso mais viável.

De qualquer forma posso gravar esta vídeo mostrando como isntanciar a classe a partir da string porém porém todas as classes que farão parte do processo terão que ser registradas.

Abs !!!
Responder

Gostei + 0

08/01/2009

Alexandre Neto

Olá Rodrigo,   Os valores são passados para as classes através da função de Deserialização.   Ex.:   Deserializa( MinhaClasse1, serie); Deserializa( MinhaClasse2, serie); Deserializa( MinhaClasseN, serie);   Mas como seria esse RemoteCreate? Não conheço.   []s Alexandre Amaral.    
Responder

Gostei + 0

08/01/2009

Alexandre Neto

Só complementando a resposta anterior...   Na aplicação cliente, eu passo o array contendo os nomes das classes utilizadas e uma string contendo a serialização destas classes.   Ex.:   Conexao.AppServer.Gravar( [ Classe1,Classe2,ClasseN ], serie );   Então a função no servidor criará as classes e preencherá as propriedades através da deserialização.   []s Alexandre Amaral.
Responder

Gostei + 0

08/01/2009

Rodrigo Mourão

Olá Alexandre !!

Bem o create remote é um tipo de construtor presentes em Objetos que suportam automação, ou seja, objetos COM.

Um COMObject e um objeto que pode ser acessado remotamente. O Remote Data Module e um exemplo disso.

Bem mas isso e outro assunto, vamos por parte. Neste chamado aqui eu vou postar um exemplo de como registrar classes no SO e criá-las através do nome delas.

Se você preferir pode abrir um chamado pedindo uma explicação sobre objetos COM, teria o enorme prazer de gravar uma vídeo com isso.

ABS !!!
Responder

Gostei + 0

08/01/2009

Alexandre Neto

Blz Rodrigo,   estou no aguardo pelo vídeo.   []s Alexandre Amaral.
Responder

Gostei + 0

09/01/2009

Alexandre Neto

Olá Rodrigo,   vamos deixar essa questão do create remote para um outro chamado mesmo.   Minha necessidade é passar o array com os nomes das classes por parâmetro para o servidor de aplicação e criar as instâncias através dos nomes das classes.   aguardo vídeo/exemplo de como implementar isso.   []s Alexandre Amaral.    
Responder

Gostei + 0

10/01/2009

Rodrigo Mourão

Olá Segue video com demostração !!

http://video.devmedia.com.br/naoexclusivos/RodrigoMourao/Consultoria/chamado1644.zip

Abs !!!
Responder

Gostei + 0

10/01/2009

Alexandre Neto

Olá Rodrigo,   Seu vídeo atendeu plenamente e esclaresceu minhas dúvidas de forma bastante satisfatória.   Podemos considerar este chamado finalizado.   Obrigado pela atenção.   []s Alexandre Amaral.     p.s.: quanto a abrir aquele outro chamado com relação ao Create remote, pode ser feito direcionado a você?
Responder

Gostei + 0

10/01/2009

Rodrigo Mourão

Olá Alexandre, eu que agradeço a confiança depositada em nós e peço desculpas pela demora em responder !!

abs !!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar