Saturday, February 12, 2011

Eclipse AspectJ : Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools



Eclipse AspectJ : Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools
| 2004-12-14 00:00:00 | | 504 | Eclipse




User review
Still waiting for book,,.
Still waiting for book that will tell me what Aspect Programming is good for. This one doesn't

User review
Excellent in depth book on Aspect J
I found the concepts of AspectJ cool but the book seems choppy and too complex to follow. The Eclipse AspectJ tools seem very complicated and busy on the screen. The book could have had a better flow and a lighter introduction. Possibly starting out as a `language` book versus a tool book.

User review
I'm finally beginning to understand AOP,,.
Since my last attempt to get a book to learn about AspectJ wasn't very productive, I decided to try again with Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools by Adrian Colyer, Andy Clement, George Harley, and Matthew Webster. *Much*, much better,,.


Content:

Part 1 - Introducing Eclipse, AspectJ, and AJDT: Getting Started; First Steps in AJDT; Extending The Application; More AJDT

Part 2 - The AspectJ Language: An Overview Of AspectJ; Straight To The Point; Take My Advice; Inter-Type Declarations; Aspects; Using The AspectJ API

Part 3 - Putting It All Together: Adopting AspectJ; Advanced AJDT; Aspect-Oriented Design; Command-Line AspectJ; AspectJ Language Quick Reference; Next Steps; AJDT Icons Reference; Index


To give you an idea of how much better I liked this book,,. I learned more in the preface than I knew after going through the other book I reviewed. :-)


There's a lot to like about how this book is done. Part 2 - the coverage of the actual language - is more than adequate to give you the reference material you need in order to learn the language. With each concept like pointcuts and advice, you get a tutorial of the feature, examples of how it actually works, as well as reference material for the methods and properties it uses. There's probably enough here to get you quite far down the learning path. But coupled with parts 1 & 3, it's more than enough to get you fully competent in the language. Part 1 gives you plenty of knowledge and grounding in how to use Eclipse to start coding an AspectJ application. They have a nice example of an insurance application that helps bring the theory into practice. Part 3 was a nice touch, too. Since AspectJ is designed to work *with* your object-oriented applications, this section helps you plan out how you can actually start applying the new skills in your environment. Since aspect-oriented programming (AOP) hasn't yet achieved any critical mass, there's little chance you'll be able to apply it in an all-out fashion. But using the material in part 3, you'll be able to plan out some pilots and situations where you can get your feet wet. Very cool,,.


Even as a way to get a high-level understanding of AOP, this book works very well. To take the next step from high-level understanding to competency, you'll have everything you need right here. I'd definitely recommend this book for anyone wanting to delve into this area,,.

User review
Good Overall View of the Language and Potential
Sub-Title: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools


If nothing else, the Java community is absolutely wonderful in coming up with new variations, add-ons, even concepts. All of these get new names and a collection of devotees. AspectJ is one of the newest.


I still haven't decided if I am going to actually do anything in AspectJ, but it seems to be gathering more attention. Merging it into Eclipse is certainly a big step along the way indicating both increasing support and the availability of tools that will help with a project.


This book is written from a very practical sense. It starts out with getting Eclipse and the AspectJ Development Tools (AJDT). It then leads you through a tutorial to get a program running. This is, as the book says a good way to begin learning a language. You begin to see how the whole thing hangs together and hopefully a few things begin to cause you to say to yourself, 'yup, this feature would have been a help on that last project.'


After that there is a more descriptive section on the fundamentals of the language itself. This is the biggest part of the book, and in good Java fashion introduces a bunch of new words to describe aspects of the language that create its uniqueness.


Finally in the last part of the book, called appropriately 'Putting It All Together' the book discusses the actual process to go through to begin adopting the language. This is an often overlooked part of beginning to use a new language. This is especially true for moving the language into a project of any size, and the book does a good job of helping you define a path to adopting the language.


This is not a book for beginning programmers. It assumes that you are a Java programmer, not necessarily an expert, but with some experience. On the other hand, in a fairly short while you can grasp the AspectJ language and begin thinking about it's usefulness for your project.

User review
Everything about AspectJ that you didn't know to ask
In Part 1, `Introducing Eclipse, AspectJ and AJDT`, we are led through the building of a prototype insurance application (SimpleInsurance). Along the way, we are introduced to Eclipse, the AspectJ language and the AspectJ Development Tools (AJDT). The aspects are not presented as pre-built, but we get to see how they are selected, written, refactored and, even debugged. I found the discussion interesting, and saw new ways to use the tooling to prevent problems, but it did mean that even simple features went through a lot of hoops which were not always clear at the time. Thrown into the mix were a number of side-bars which explained the development philosophy and architecture behind AspectJ to a depth that I have only glimpsed in some of the mailing list discussions. I am using AspectJ and some of these sidebars took me several minutes to digest. I don't like to think about how a genuine newcomer would react. Thrown into the mix were screen captures of simple wizards and instructions on how to save files, making for some unintentionally funny contrasts.


In Part 2, `The AspectJ Language`, things calm down as we go back to the beginning and cover the AspectJ language in full detail. As one would expect, they have produced the clearest and most comprehensive overview of the language I have seen. Everything is explained, generally using code snippets and object-interaction diagrams to reinforce their points. For complex issues, there are a number of sidebars which delve into the design of AspectJ. I learned many new things, not only about AspectJ but about the Java language itself.


Finally, in Part 3, `Putting it All Together`, we are able to get into the `meat` of AOP and discuss how to develop our own AO application. We get to see how to adopt AspectJ, how to develop with aspects, and how to design applications with AO. Armed with a richer understanding of AspectJ, we take a look back at the insurance application that we worked on in Part 1 and see what benefits we've achieved. We briefly revisit the discussion about integrating AspectJ with Hibernate, and get to see how we would use Spring to improve our solution even further. There is great stuff here, but my only problem with this section is that there is just too much material to cover in the 100 pages it gets. As they say, a whole book could be written on this topic (any takers?).



I couldn't help comparing this book to `AspectJ In Action`, though the two are quite different in many ways. `Eclipse AspectJ` definitely contains the most in-depth information about AspectJ and the AJDT. Using the same example (the SimpleInsurance application) throughout meant that we can see AspectJ being used in many different parts of development. There are many aspects in `Eclipse AspectJ` which I am keen to use in my applications. The problem is that I'm still debating with colleagues at work if I *should*. Where `AspectJ In Action` spent some time explaining different patterns and showing where different aspects should be used and where they should not, `Eclipse AspectJ` presents the tools but leaves the rest up to us. To my mind, that is the most important difference between the two. While `Eclipse AspectJ` cannot be matched for sheer depth, it does not always provide enough context to be used by new AspectJ developers. It is a good resource for existing AspectJ developers and will give you a complete understanding of the language and the tooling, but will be standing beside `AspectJ In Action` on my bookshelf.


Download this book!

Free Ebooks Download