Aspect-oriented programming (AOP) is an exciting new paradigm that should have the same effect on software development that object-oriented programming (OOP) had 15-20 years ago. AOP and OOP are not competing technologies, but actually complement each other. OOP is great for modeling common behavior on a hierarchy of objects.
In software engineering, the programming paradigm of aspect-oriented programming (AOP), also called aspect-oriented software development (AOSD), attempts to aid programmers in the separation of concerns, or the breaking down of a program into distinct parts that overlap in functionality as little as possible. In particular, AOP focuses on the modularization and encapsulation of cross-cutting concerns. from WikiPedia
What's keeping you from trying out AOP? Whether you think it's only good for low-level functions like tracing and logging, worry that it'll get in the way of unit testing, or would simply rather stick with the object-oriented alternatives, Ramnivas Laddad gives you good reason to reconsider. Follow along as this popular author and speaker digs beneath the surface of 15 myths that hinder the adoption of AOP.(IBM)