HI, Any good resources to wrap my head around Aspect Oriented Programming?
PS:- I need to understand AO programming not the libraries or frameworks available for .NET or C# :)
HI, Any good resources to wrap my head around Aspect Oriented Programming?
PS:- I need to understand AO programming not the libraries or frameworks available for .NET or C# :)
Just to get your head around it: It is the ability to hook events such as: creation of objects, setting of properties, etc, and attach general functions to them, that will be populated with relevant context.
Because C# doesn't have an inbuilt facility for this, you need a framework, like PostSharp, to do 'bytecode weaving' (i.e. just writing code to actually make the calls, directly to your classes) to simulate it.
Aspect Oriented Programming means having a meta level where yo can define logging or security/access control features to interweave with your code instead of implementing these feature very time in your code. So instead of beeing one-dimensional, you have to program two-dimensional.
I know this may sound very esotheric but it is easy once you understood it.
AOP often works with proxy classes which intercept calls and do things in the background.
You can perform some AOP with Microsoft's Unity Application block. An example of using Interception
can be found here.
What a timely question?
Here is the podcast worth listening.
This will give you a good overview on what is AOP? where it can be used?
Hope that helps.