AOP Serviced Components!
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";
}
}