Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where do I start with Aspect Oriented Programming?

So having read some of the PostSharp documentation presented as an answer to my previous question regarding passive logging (Is passive logging possible in .NET?), I am led to my next question:

Where is a good place to start learning about Aspect Oriented Programming - I've done some searches on Google and I've read some articles - including the article regarding the topic on Wikipedia, but a lot of the material seems to assume you have a basic understanding of some of the terms which I seem to be missing, and that which doesn't just dives straight into integration leaving me not understanding what exactly it is I'm integrating.

Does anyone have any decent material targeted at helping someone who's never heard of Aspect Oriented Programming before today learn about the core concepts, terms/keywords etc? Even a birds-eye view would be helpful - i.e. These are the core concepts, keywords to look out for, what they stand for and how they fit together. After that, I can probably make some decent headway on my own. I'm most interested in AOP in relation to .NET development, so any material that specifically targets this would be helpful.

TIA

like image 697
BobTheBuilder Avatar asked Mar 27 '09 01:03

BobTheBuilder


People also ask

Which starter is used for Aspect Oriented Programming?

Spring Boot Starter AOP is a dependency that provides Spring AOP and AspectJ. Where AOP provides basic AOP capabilities while the AspectJ provides a complete AOP framework. In the next section, we will implement the different advices in the application.

Is aspect oriented programming still used?

Nowadays I see some AOP still around, but it seems to have faded into the background. Even Gregor Kiczales (inventor of AOP) called it a 15% solution. So I guess AOP has its reason for existence, but it depends on the individual developer to use it the right way.

Which method is executed first in AOP?

Executing method on the target class Thus, Spring AOP injects a proxy instead of an actual instance of the target class. When we start the Spring or Spring Boot application, we see Spring executes the advice before the actual method.

Is Python aspect oriented?

Parts of aspect-oriented programming (AOP) are implemented by decorators in Python. Our purpose here is to leverage a few aspect-oriented concepts to help show the purpose of decorators and mixins in Python. The idea of a cross-cutting concern is central to AOP.


1 Answers

What's your goal? AOP has a lot's of manifestation:

  • Attribute oriented programing
  • Proxy objects
  • Context boundary objects
  • HTTP handlers/chaining in ASP.NET
  • PIB in Enterprise Library
  • Post-compilers like EOS (I used EOS (http://www.cs.iastate.edu/~eos/) in my thesis.)

AOP has a great impact on framework todays, but it's only impact and not a breaking change. And yes, there is no common language, no common definitions. I think you should try attributes/PIB/EOS etc., and after that you can define and explore AOP yourself.

Resources

http://www.codeproject.com/KB/architecture/aop2.aspx

http://blogs.msdn.com/tomholl/archive/2007/02/23/announcing-the-policy-injection-application-block.aspx

like image 72
boj Avatar answered Oct 20 '22 09:10

boj