Fala Mário...

Só uma dúvida cara, usando a abordagem dos DTOs, se eu vou criar um novo
"usuario" por exemplo, no meu código flex eu irei criar um novo DTO usuario
e envia-lo para o server e lá irei fazer a "conversão" em um usuario do
"dominio" e realizar as operações necessárias, correto?

Obrigado

2010/9/8 Leonardo Ribeiro <[email protected]>

> Sim, eu já havia pensado nisso, nos DTOs, mas queria ter a opinião de quem
> já usa ou se deparou com o mesmo problema que o meu aqui agora...
>
> []'s
>
>
> 2010/9/8 Mário Júnior <[email protected]>
>
>> Sim, trabalhoso, mas pensando de forma mais "politicamente correta" seria
>> isso mesmo!
>>
>> Pela conversa - e pela dúvida específica - me parece q vc está expondo
>> diretamente as entidades do seu negócio né?
>> No começo eu tb fazia isso (
>> http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensource-para-sistemas-web-parte-2-final/#comment-149..
>>  caramba, já tem +2 anos esse meu comentário =P) mas depois com o tempo me
>> conscientizei de q, de fato, não é uma boa prática expor entidades do
>> hibernate, justamente por me deparar com os principios básicos de
>> encapsulamento, code responsability, etc... então adotei o uso de VOs (q hj
>> já aprendi/acostumei a chamá-los de DTOs). São objetos "burros" q
>> simplesmente trafegam dados entre a view e os services, e daí nos services
>> eu transfiro os dados desses DTOs para as entidades, respeitando toda a
>> regra de negócio encapsulado nesses objetos.
>>
>> Enfim, como comentei antes, cada caso é um caso, e todos estão sujeitos a
>> longas análises... pra isso estamos ae :)
>>
>>
>> []s e boa sorte.
>>
>>
>>
>> Em 8 de setembro de 2010 19:07, Leonardo Ribeiro 
>> <[email protected]>escreveu:
>>
>> Mário,
>>>
>>> É, realmente pensando bem não seria uma boa já que teria os casts...
>>> Você que já tem experiência em vários projetos java x flex, como resolve
>>> o problema do encapsulamento, tendo como exemplo o simples objeto NotaFiscal
>>> que tem como atributo Itens ?
>>>
>>> Sendo que em NotaFiscal não tem um método setItens(List itens) mas sim,
>>> por exemplo, addItem(Item item), porque a nota que deve controlar seus
>>> itens, fazendo se necessário alguma validação no item passado como parâmetro
>>> no método addItem(Item item)?
>>>
>>> Usa VO? Nesse caso teria que sempre que ler do BD que retorna objetos do
>>> domínio, fazer a criação do VO correspondente e enviar para o Flex e quando
>>> receber do Flex o VO fazer o inverso para poder trabalhar no server com o
>>> objeto de domínio correspondente... isso? Trabalhoso né? hehe
>>>
>>> Obrigado pela atenção
>>>
>>>
>>> 2010/9/8 Mário Júnior <[email protected]>
>>>
>>> É possível sim.
>>>> Abra o source da classe JavaAdapter. Nessa classe vc tem o método
>>>> invoke(Message message).
>>>>
>>>> Dentro de message (faça um cast para RemotingMessage) vc tem tudo oq
>>>> precisa saber (qual classe de serviço será chamada e qual o objeto de
>>>> transporte será passado como argumento, assim como qual é o seu homonimo no
>>>> java, etc...).
>>>>
>>>> Agora, precisa ter um bom cuidado com isso, pois ao meu ver, vc estaria
>>>> envolvendo uma certa "regra de negócio" dentro desse adapter. Não digo que 
>>>> é
>>>> errado (não sou extremista) mas fique ciente q a medida q o seu projeto for
>>>> crescendo (e as regras  aumentando) vc vai ter sempre q fazer "testes" no
>>>> objeto tranportado para saber se é um tipo X ou tipo Y para daí então
>>>> decidir qual método chamar (ou deixar de chamar), etc...
>>>>
>>>> Daí fica a pergunta: Não seria melhor fazer esses testes na sua camada
>>>> de serviços, em vez de fazer na camada de comunicação?
>>>>
>>>> ps: cada "caso" é um caso... :)
>>>>
>>>>
>>>> []s
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Em 8 de setembro de 2010 15:31, Leonardo Ribeiro <[email protected]
>>>> > escreveu:
>>>>
>>>>>  Pessoal,
>>>>>
>>>>> Alguém que já tenha mexido no fonte do BlazeDS sabe se é possível fazer
>>>>> com que ele, ao invés de fazer a "criação/injeção" dos valores do objeto 
>>>>> as3
>>>>> -> java via setters publicos usar reflection?
>>>>>
>>>>> Porque isso? Porque daí eu não precisaria de setID por exemplo, que
>>>>> seria a "pk" do objeto, uma vez que essa "pk" seria criada no construtor 
>>>>> do
>>>>> objeto e não tem sentido alterar. Outro caso seria de no objeto java ter 
>>>>> uma
>>>>> coleção como atributo (típico caso de nota fiscal ter uma coleção de 
>>>>> itens)
>>>>> com isso não precisaria ter um setItens(List itens) no objeto
>>>>> NotaFiscal.java, e sim um addItem(Item item), mantendo o encapsulamento,
>>>>> pois quem deve inserir/gerir os itens da nota é a nota.
>>>>>
>>>>>
>>>>> --
>>>>> []'s
>>>>> Leonardo
>>>>>
>>>>> Linux User #488650
>>>>> Ubuntu User #27045
>>>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>>>
>>>>> --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> [email protected]
>>>>> Para sair da lista, envie um email em branco para
>>>>> [email protected]
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Mario Junior
>>>> http://blog.mariojunior.com/
>>>> @mariojunior
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>>
>>>
>>> --
>>> []'s
>>> Leonardo
>>>
>>> Linux User #488650
>>> Ubuntu User #27045
>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> Mario Junior
>> http://blog.mariojunior.com/
>> @mariojunior
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> []'s
> Leonardo
>
> Linux User #488650
> Ubuntu User #27045
> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>



-- 
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a