The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

RobertoI (29) [Avatar] Offline

I have finished reading chapters 3, 4 and 5. The content is very clear and the code examples make the concepts even clearer.

I have just a minor remark. In chapter 3 your examples describe very clearly PostSharp and Castle DynamicProxy different ways of implementing AOP, however I have found a disconnect between the descriptions of the two techniques (attribute based vs dynamic decorators) with no real comparison and explanation of the relative advantages and disadvantages. For example, I would have expected something on the lines that (PostSharp) attributes clearly document the aspects bound to a method, but that on the other hand are more invasive and hardcode such mappings. Or the fact that (Castle DynamicProxy) dynamic decorators are more flexible and dependency-injection friendly, but on the other hand "hide" the aspect mappings in the composition root.

Have you planned to compare and contrast the two techniques in the next few chapters? Or do you think chapter 3 could be a good candidate?

matthew.groves (46) [Avatar] Offline
Re: Comments on chapters 3, 4 and 5

It's a good point, but you appear to have broken it down quite well yourself without any help from the author smilie

I suppose it might be good to talk about explicitly in chapter 7.

Your remark about "hiding" the aspects in the composition root can also be applied to PostSharp as well: the aspects can be "hidden" in a central location by using assembly-level attribute multicasting. I just haven't done that in any examples before chapter 8 (to keep the examples simple).