AOP :: aspectwerkz - JBoss AOP - aspectJ

Oi pessoal!

Estou iniciando meus estudos em AOP e estava querendo uma opinião sobre que framework escolher.

Estou entre esses:

AspectJ - É a que mais encontro material, mais ja vi muita gente falar mal.

AspectWerkz - Essa é mais por influência das msgs do Carlos Villela no fórum do GUJ! :idea:

JBoss AOP - Bem, confio muito no pessoal da JBoss!

Gostaria de saber o pq uma é melhor que outra, vantagens, desvantagens, qual tem mais futuro … pois quero de inicio focar em uma dessas três.

É que pelo pouco que vi, o jeito de trabalhar com uma é completamente diferente da outra.(não sei se estou falando besteira)

Desde já, um muito obrigado!

Pra adicionar mais um pouco de confusão, então:

Nanning - http://nanning.sf.net

:smiley:

Acho que o mais importante, Richardson, é conhecer os conceitos do AOP, e entender como aplicá-los para resolver a maior quantidade possível de problemas - o que não é nada fácil depois que vc passa do básico (logging, caching, etc).

Fica aqui minha recomendação de usar o AspectWerkz, mais uma vez. Funciona muito bem, é dinâmico, tem features que nenhum outro framework de AOP tem (caller pointcuts, por exemplo), e o autor (Jonas Bonér) é muito gente boa, e responde as dúvidas na lista de discussão bem rápido :slight_smile:

como o cv disse, interessante eh conhecer o conceito.

o AW da um PAU no AspectJ pelo pouco que vi. o AspectJ muda as classes (faz injection de codigo) em compile time. o AW faz em runtime. Sem comparacao.

Soh que, o AspectJ tem uma sintaxe nova, e que eh muito java-like. O AW a configuracao eh via API e XML.

Soh brinquei com HellosWorlds no AspectJ. Mas AOP tambem pode ser nocivo: http://www.theserverside.com/home/thread.jsp?thread_id=19499&article_count=81

CV me corrige se eu estiver errado.

Beleza CV, estudarei os conceitos sim, concordo que isso é pré-requisito para qualquer nova tecnologia que se queira aprender.

Paulo, valeu mesmo pelo link, é legal conhecer tb os contras e daí optar e ter dicernimento sobre quando e como usar determinada tecnologia.

E acho que como framework de estudo, AspectWerkz mesmo. Confio na recomendação de vcs!

Bem, quem sabe minhas futuras dúvidas postadas no fórum ja serão mais específicas sobre o uso de Aspects.

Outra coisa, gostaria de saber se algum de vcs tem aplicado AOP já em algum projeto e se tem sido válido?

Um obrigado!

Acho que vc vai querer ler isso:
http://aspectwerkz.codehaus.org/testimonials.html

[quote=“Paulo Silveira”]Mas AOP tambem pode ser nocivo: http://www.theserverside.com/home/thread.jsp?thread_id=19499&article_count=81

CV me corrige se eu estiver errado.[/quote]

Qualquer metodologia de programação pode ser subvertida e usada de zilhões de formas erradas. Em AOP, assim como em OOP, não é diferente. Dá pra fazer cagadas fenomenais com umas poucas linhas de advice.

Tem muita gente preocupada com as questões de segurança das VMs ao se usar AOP. Dá pra passar por cima de license managers e outros softwares do tipo em poucos minutos, usando meramente um depurador e um aspecto dinâmico no AspectWerkz. Teve até um cara por aí que postou num blog uma solução pra usar o Together ControlCenter sem license manager, usando um único pointcut e um aspecto pra sempre retornar true na hora de validar a licensa (eu postaria um link aqui, mas estou com preguiça. Não sejam tão vagabundos quanto eu e vão procurar! :D).

Isso traz a tona uma questão muito interessante: quando vc está rodando uma aplicação Java, a VM é SUA. Você faz com ela o que quiser. Os bytecodes compilados da aplicação são meramente sugestões do que a VM deve rodar. Mas, se a VM é sua, você pode não aceitar essas sugestões, e usar outros caminhos. Isso detona muito do que a gente tem como garantido na engenharia de software hoje em dia. E tem gente, é claro, que não está gostando nada disso, mas eu particularmente estou amando a idéia :smiley:

Ah, a velha discussão Poder vs. Segurança… :slight_smile:

Eu também estou nessa dúvida, porém vou na de vcs, vou estudar o AW. :stuck_out_tongue:

Mas olhando melhor agora… o aspectwerkz não tem um plugin descente pra se trabalhar… e agora?

E mais os dois se juntaram…

As recomendações de anos atrás ainda estão de pé?

[quote=onolox]Eu também estou nessa dúvida, porém vou na de vcs, vou estudar o AW. :stuck_out_tongue:

Mas olhando melhor agora… o aspectwerkz não tem um plugin descente pra se trabalhar… e agora?

E mais os dois se juntaram…

As recomendações de anos atrás ainda estão de pé?[/quote]

esse post tem 4 anos filho :wink:

Tem pro Eclipse e pro IDEA, no site deles mesmo, se não me engano.

Mas um número enormes de funcionalidades do AspectWerkz continua fora do AspectJ. Ao mesmo tempo, o AJ tem melhor suporte às funcionalidades do Java 5.

Compare os dois e verifique qual funciona melhor no seu caso.