<= Home
AOP on TSS
1. The suggested implementation requires the class with aspects being applied to derive from the ContextBoundObject. First off the ContextBoundObject has enormously bad performance associated with it. Also, this puts constraint on your design of your entire system because it forces strict object hierarchy. Say goodbye to applying aspects to an already developed system as a way of extension, also you can not aspect any classes (i.e. 3rd party components) you do not have control over.
2 The example in the article is based on logging functionality. There is nothing new here, this is the 101 of AOP and every example in AOP uses the logging aspect. For AOP to really become main stream, we need practical examples of applying it in real world situations. I don't think forcing every object in your system to use the poor performance ContextBoundObject so that you can log messages or do Trace.Write("something happening") is going to be practical to any good Architect.
3. The article focuses on Interception...AOP is not just interception...AOP uses interception but it also uses mixins to weave in functionality which is never even mentioned in the article.
4. The primary way of applying aspects in the article is using metadata (or Attributes). Attributes allow you to tack on some standard behavior but they do not really allow for dynamic weaving of behavior. Another problem with attributes is that they are applied at design-time, this meaning that if you want to apply other aspects you have to recompile the class. At the end of the article it briefly mentions that to apply aspects with out re compiling we can use an external configuration file and the JBoss framework...wait..did he just reference a java framework. After you are all ready to use AOP the author then references a java tool. Great I'll go out and get that when I do a java system, but what about .NET. There are lots of .net frameworks being developed that could be used, but we get pointed to a java framework instead.
My article should be finished and up some time in June. I have been busy finishing building my house, wrapping up at a client, and writing my presentation for INETA. I'll keep you posted until then. Also, if you have any questions AOP please drop me a line.