Fog Creek Software
Discussion Board




AOP demo

For those interested in Aspect Oriented Programming and missed Clemens Vasters on the ECMA Architects tour, a streaming demo (30 mins.) of his can be found at http://www.dotnetmaailma.com/video/030303/10/demo2.wmv

Just me (Sir to you)
Tuesday, April 01, 2003

How do you do aspect programming with dot net or vbscript?

Li-fan Chen
Tuesday, April 01, 2003

http://msdn.microsoft.com/msdnmag/issues/02/03/AOP/AOP.asp
http://research.microsoft.com/collaboration/university/europe/rotor/wshop-aspectnet.ppt

Ged Byrne
Tuesday, April 01, 2003

I think a lot of us in trade are too ashamed to ask for some spoon feeding. But I am shameless :P

What would happen if we started to apply AOP to system programming? What would happen if we started to apply AOP to writing business logic? Anyone have presentation on this?

Li-fan Chen
Tuesday, April 01, 2003

There have recently been a couple of really good MSDN articles covering AOP or similes, including

http://msdn.microsoft.com/msdnmag/issues/03/03/ContextsinNET/default.aspx

http://msdn.microsoft.com/msdnmag/issues/03/03/ContextsinNET/default.aspx

AOP has its place (and has been is use for years in the form of binary interception or custom interception chains), but I have no doubt whatsoever that there will be loads of "new=awesome!" misuses of it in the coming year until it's 01d 5k0O1.

Cheers!

Dennis Forbes
Tuesday, April 01, 2003

Doh! That second link should be

http://msdn.microsoft.com/msdnmag/issues/02/03/AOP/

Dennis Forbes
Tuesday, April 01, 2003

Personaly I find AOP can have its uses. MTS is a form of AOP right? But to use it as a common programmers toolbox technique for things like simple business logic in my mind is opening a Pandora's box. At least IMHO AOP assumes every aspect is cleanly orthogonal from every other, right? How long would this assumption hold with aspects freely programmed by a diverse non-communicating buch of independants?

Just me (Sir to you)
Wednesday, April 02, 2003

Sir,

MTS is actually a good example of the usefullness of AOP.

With MTS in VB6 you have to add SetComplete and SetAbort calls to every method.  For you components you have to implement the Object Controls interface and it's methods.

These calls and methods are crosscutting concerns.  If I create a foo object, it has been poluted with code that is concerned with the managing of MTS rather than foo.

An example of one problem this can call is when you run you MTS object in the IDE.  A message pops up stating that the MTS functionality had been disabled.

The crosscutting MTS code has tied the object to an MTS context.  The IDE has to intercept on your behalf so that you can then run your object in a different context.

Using AOP the code necessary to implement the transactions is held separately from your object code.  The foo object code just deals with things that concern the foo object.  The things that concern transaction would be in your transaction aspect. 

Your foo objects would then be weaved with your transaction aspect.

Then if you want to compile the object for a different context where transactions don't apply, then you just leave the transaction aspect out.

As with most modular techniques its not about doing something different, but doing something in the right place.

Ged Byrne
Wednesday, April 02, 2003

I think you'll find that most of the people who are really excited about AOP right now are plumbers. By this, I mean - people working on implementing object remoting, transaction sharing, distributed systems infrastructure... all the low level stuff. Each one of these is an orthogonal concern, so AOP fits well.

Making AOP a run-of-the-mill tool will, I think, not fly. I also thing that is why the only example of AOP I've ever seen is message logging. It's the only thing every developer can relate to.

Chris Tavares
Wednesday, April 02, 2003

*  Recent Topics

*  Fog Creek Home