I've just published a two-part tutorial of PostSharp Laos on codeproject.com. It shows how to create three custom attributes: the academic tracing one, a performance counter and a field validator.



Please read, blog about it, and give them a good vote :-).


I know, people love aspects but they need to convince their chief architect to go this way. This white paper from Columbia University was jointly written by a panel of scientists and industry practitioners. They present two cases studies (Philips, Deutsche Post) and argue hat Microsoft should introduce support for AOP-related practices, whose a subset is already supported by PostSharp. You can download the white paper from there: http://mice.cs.columbia.edu/getTechreport.php?techreportID=438 by Marc Eaddy (Columbia University), Alan Cyment (University of Buenos Aires), Pierre van de Laar (Philips), Fabian Schmied (Vienna University of Technology) and Wolfgang Schult (Deutsche Post World Net)

The PostSharp Day: first public demonstration of PostSharp.

The PostSharp Day This forth day was for me principally the one of the demonstration of PostSharp. The first real public demonstration. A baptism, to some extend. The strange thing is that PostSharp was first presented to scientists and not to developers while PostSharp was actually developed for developers and not for scientists, and even if I am convinced that it is interesting for scientists, there was a perceptible shift between the talk and its audience. Let me repeat the reasons why PostSharp Core and PostSharp Laos are interesting for researchers:

1. PostSharp Core is an infrastructure on which assembly transformation applications, like code weavers, can be realized very easily. This kind of platform, with that level of integration, did not exist before for the .NET Framework. Yeah, I did not know that researchers nearly only target Java!

2. PostSharp Laos is an original and pragmatic aspect weaver. Pragmatic because it speaks the same language as the programmer and was designed to have a flat learning curve. Original because some features, like compile-time behaviors of aspects, are really unique.

Componentizing Classes The other talks I remembered from this day are all about different strategies to componentize classes. I have already written about it in yesterday's post with an approach named traits. So more approaches were presented, but, again, they require language extensions or at least a pre-compilation step. It does not means that it is uninteresting, of course (and this could be implemented by Visual Studio generating partial classes), but it cannot be implemented using PostSharp.

There is a Czech proverb telling that when you have a hammer, everything looks like a nail, but here there is even no resemblance...