Microsoft has a history of taking great stuff, re-polish it a bit and then throw it out in the wild as something new or at least re-wamped. Now they just did it again.
Tom Hollander and Ed Jezierski posted a couple of days ago about the new application block added to Enterprise Library 3.0: Policy Injection. Looking at both their posts; they are describing it as a way to separate Cross Cutting Concerns out of your code and make those concerns manageable by configuration. I am really all for separating concerns, especially the cross cutting ones so seeing Microsoft's Pattern and Practices team taking a step in this direction is really commendable.
There is one thing though, they are not calling it what it is.
Looking at the specifications and explanations in these two posts, it becomes very clear that it is nothing but a first attempt on a framework for Aspect Oriented Programming. Ed even speaks about this in his post:
"Why don't you call this AOP? If you know about AOP, you can see where it is similar and where it differs from AOP solutions out there"
"However the reality is most of our customers have not heard of AOP or AOSD. Please put yourself in their shoes for a second. We wanted a name that was reflective of the use and benefit the block brings, rather than using an unfamiliar term that only the exceptions understand"
"We also wanted to have no implicit expectations on the design that may be inherited from AO solutions"
So Ed acknowledges the similarity to AOP but in the same breath he says that it is too hard for customers so see where they can benefit from the technique. He justifies this with avoiding "using an unfamiliar term", now I might be out on a limb here but, the name will not be the problem when trying to make people get it. If anything it will be more confusing and we will have to answer questions like "How does AOP differ from PIAB" or "How does PIAB differ from AOP". The obvious answer will be, "Nothing really, Microsoft just chosed to give it a different name".
No the challenge will not be in the name, it will be in another common AOP question:
"This is all very scary. I can't know what will happen by looking at the code!"
It is in this objection the real education effort lays, to teach people how to separate concerns and being comfortable with it. For this challenge, changing the name to something more "user friendly" is just creating an unnecessary diversion.
If the PAG team just called it what it is, they could point out to countless books, articles, implementations and communities (like the huge Java AOP community) and say "hey look over here, there is loads of people benefitting and using this technique already. Why don't you join them?".
I do not think they will change it though, because of their second objection. They don't want to be compared to any AOP frameworks already developed and matured. This is a first version framework and I have not seen the code, but I know by experience how first version of anything usually looks and work. But I just have remark for you guys, "courage" instead of "prestige". Dare to put your head out in the open; no one will cut it off for not getting everything right the first time. On the contrary, I'm positive that you will get standing ovations for actually daring to create a MS branded AOP framework.
A final note, I really like this effort from the PAG team. Although I do not agree with all their decisions and implementations choices, it is really good to finally see someone from Microsoft acting in this area even with this kind of small steps.
Links to Ed's and Tom's posts: