AOP ServicedComponents!
For those attending my talks at the Microsoft Strategic Architect's Forum in South Africa next week (that's an "by invite only" event), I am very happy to announce that I am going to be demonstrating, for the first time, a stable version of my brand-new AOP extensions for Enterprise Services. It's an extensible framework that allows writing custom, managed attributes, which are invoked from within the server-side context and allow interception and inspection at the class, interface, method, property, field and argument level.
The example below illustrates the functionality using a set of validation attributes, but there's significantly more you could do. I will have to do quite a bit of documentation work before I can make this available, but there will be downloadable bits for everyone to play with within the next couple of weeks.
[Transaction] public class Component : newtelligence.EnterpriseServices.AspectServicedComponent { private string val = ""; public Component() { } [Match("[A-Z]*")] public string SetMeGetMe { get { return val; } set { val = value; } } [GreaterEqualTo(0)] public int TestField; [return: MinLength(1)] public string Hello( [MinLength(1),MaxLength(20)] string Name, [Between(1,100)] int Age, [MinLength(1)] out string retString, [LaterThanToday] DateTime when) { return "Test"; } }