Olá DM!!
Continuando…
Quando digo arquitetura ruim, entenda como algo “não digno das boas praticas”, principalmente pensando na especificação do EJB 3.0. (se bem que usar o Seam já sai da especificação… hehe… mas ai é outra história… :D)
[quote=demorgan]
Só para exemplo se você quiser usar o Contexto Conversasional é necessário ter um Statefull Bean, dessa forma o seam traz os componentes EJB para a camada de aplicação. Você até pode usar Pojos, mas seus componentes Seam poderão ser apenas ou de sessão ou de eventos, e aí de nada adianta, concorda?[/quote]
É exatamente essa a questão de se utilizar ou não o Facade…
Como você disse abaixo, com toda certeza é muito melhor “modularizar”, dividir tudo como manda a boa pratica do EJB 3.0.
Sem usar o Facade concordo contigo, fica muito misturado o código, não sei até que ponto isso vale a pena ou não, talvez em aplicações pequenas (como o seamboking) você até possa fazer assim, pois muita coisa vc consegue injetar (é praticamente uma mágica mesmo… hehe), mas em aplicações de grande porte… a coisa complica… principalmente em termos de manutenção e legibilidade de código, e se for colocar varios programadores juntos então… quanto mais modularizado melhor.
DM particularmente sou totalmente favoravel ao uso do Facade, mesmo as vezes o Backing Bean sendo uma “cópia” com alguns métodos a mais pra view, acho que o Facade divide muito bem as camadas.
Tá ai uma ótima coisa pra se pesquisar!!!
Concordo contigo novamente, acho muito aconselhavel usar o Facade, mas vejo alguns problemas com isso… supondo um caso que aconteceu comigo e provavelmente seja muito comum em qualquer sistema de medio porte acima:
Você presisa usar o tal do Conversation, e agora vamos tentar encaixar com o Facade, assim teremos:
– Entity Component
Show de bola, JPA + a injeção do Seam ajuda muito, principalmente se precisarmos de uma Entity que fique armazenada na sessão, com a bijeção vc pode usa-la em qualquer Component que precisar.
– Ejb Facade (Stateless se possivel)
Tem a função de basicamente abstrair o uso do EntityManager, NÃO é um Seam Component
– Seam Component (Old Backing Bean :D)
A função de conversação é extremamente util!! Então esse cara aqui tem que ser um Ejb Stateful e um Seam Component com scope conversation. Usamos a @EJB para injetar o Facade.
Opa, aqui um problema, DOIS Ejb’s, quando “antigamente” (até parece que é longe… hehe) usariomos UM Ejb e UM Backing Bean.
Particularmente, eu gosto da idéia acima, acho que vc modulariza e consegue muita coisa boa com o component, porém… e a performance… agora temos um EJB Stateless e um EJB Stateful e ainda por cima o Seam controlando o fluxo de vida por causa do conversation.
Sem falar na maravilha que é ter duas interfaces pra ficar montando, nunca aconteceu de colocar o método na implementação e esquecer da bendita interface??? hehehehe 
Sinceramente, vou começar um projeto é creio que vou usar a arquitetura acima… mais pra testes e aprendizado que outra coisa.
Qual tua opinião cara?
Até onde vai, sinceramente ainda não sei cara… mas pelo pouco que vi, vai muito longe, o Seam tem se mostrado muito bom para “interligar” as camadas, e com ciclo de vida também!!!
Usar bijeção, pelo que vejo, sempre que possível, mas tem que ficar extremamente claro pra você como isso funciona, se não você se perde, um ótimo exemplo disso é, quem nunca precisou acessar uma Entity que vc armazenou num Backing Bean se Sessão? Oq vc faze nesse caso é usar o createValueBinding do FacesContext… esquece… injeção sem dúvida alguma!!!
Quanto a substituir a @EJB, eu diria que em alguns casos talvez, mas acho que deveria se trabalhada em conjunto com ela, não substitui-la. Creio que o Seam substitui mais o Backing Bean que o @EJB em si…
Agora o quão maravilhoso seja, não sei… vejo muitas vantagens e algumas dúvidas, mas não necessáriamente desvantagens…
O Seam traz muita coisa boa, por exemplo o controle do fluxo de vida, as bijeções, uma camada de segurança razoavel.
Acho que é bom sim, se não não viraria uma JSR… mas ainda restam algumas dúvidas (pelo menos pra mim)…
É isso ai, acho que escrevi de mais!!!
Hehehe
Abraços e até!!!
Rodrigo