I’m excited to kick off the PostSharp speaking tour, which will give me 8 speaking opportunities in the next 2 months.

Developer! Developer! Developer!

My first stop will be Glasgow, Scotland on Saturday May 7 at DDD Scotland 2011. I’ll be in town from Friday evening to Sunday afternoon and there’ll be plenty of opportunities to meet up. I’m happy that the community wants (and voted) to hear more about aspect-oriented development. And yes – even if running SharpCrafters takes a lot of dedication, I still feel myself a developer above all, and am still very reluctant to use the term CEO (which I find inadequate for small companies anyway).


As a prelude to the speaking tour, I did a 3-stop trip to Belgium. On March 7th, I presented aspect-oriented programming in a (quite) non-technical way at La journée agile. This was a great event, and was my first public speaking in my native tongue since university! The audience was mainly composed of managers. The day after, I did a second presentation in French for DotNetHub. The recording is available here. Finally, on March 11th, I presented AOP to VISUG, but this time in English. Special thanks to Pierre-Emmanuel for securing these events.

After Glasgow, I’ll have one week in office where some of you will learn more about the next CTP.


During the week of May 18th, I will literally tour Germany (by train) and visit local user groups. This week will be crazy: Regensburg on Monday, Munich on Tuesday, Ulm on Wednesday, and Karlsruhe on Thursday. And now the worse: a 12 hour night trip by train to get back home in second-class day coach.

Since Germany cannot be toured in one week, I continue on June 6th with a visit of the Hamburg user group on Monday and Cologne on Tuesday.

We wanted to continue the tour, but had to cancel the next stops to fight directly to a first-class conference:

NDC, Oslo

Developers want to hear about AOP. And AOP is not just me: there will be a whole track on AOP and IoC at NDC 2011, featuring (Day 3, Track 5):

  • 9h00: Produce Cleaner Code with Aspect Oriented Programming (me)
  • 10:20: Advanced Aspect Oriented Programming (Donald Belcham)
  • 11:40: Ten Simple Rules for Rewriting IL on the CLR (Philip Laureano, author of LinFu)
  • 13:40: Inversion of Control containers: patterns and anti-patterns (Krzysztof Kozmic, maintainer of Castle DynamicProxy)

And because so many evangelist of different AOP churches, we organized a discussion panel on Day 2, moderated by Carl Franklin and Richard Campbell of .NET Rocks!

If you will be NDC, be sure to attend the panel, and prepare your sharpest questions!

Back home

I’ll be home most of the summer and the autumn, assisting my wife as we and our 3 kids are expecting the delivery of twins for September.

A single exception: I’ll be at the See# Party in Switzerland on August 19th to make sure I reached absolutely all German speakers (Kreuzlingen is at the border between Austria and Switzerland).

Special thanks to Britt, our community dude, for organizing these speaking engagements while I am coding.


Twelve speaking engagements in a semester is a lot, but it’s not enough to spread the word to everybody. Fortunately, I’m not the only AOP speaker on earth. Our friends Marcus King, Marko Apfel, Donald Belcham and Matthew Groves are doing good work too. Check our community page to find an event in your region. And of course, if you want to be a speaker too, we can offer you free consulting and materials to help you get started.

Happy PostSharping!


We just published the fifth maintenance release of PostSharp 2.0, correcting 29 bugs, mostly minor. The most significant improvement of this update is a solution to the number-one problem of PostSharp 2.0: its failure to load dependencies to C++ assemblies. The reason of the problem is that the CLR cannot load C++ assemblies when it is “hosted” (PostSharp hosts the CLR as SQL Server does). The solution proposed in this release is to load such assemblies for metadata only, i.e. do not load it with the CLR. This should be enough most of the time.

Even if you had no problem with previous versions of PostSharp, you may want to update to this version because it addresses an important run-time performance defect with OnExceptionAspect: the binding code was erroneously generated out of the catch block, so it was executed even when the aspect was not invoked. This issue is now solved.

This release is therefore a recommended upgrade for anyone.

Here’s the complete list of fixed issues:

  • Add possibility to specify the location of ILASM
  • Added support for Aspect.AspectPriority in Silverlight
  • AnnotationValue.FromObjectConstruction does not respect module translation
  • AnnovationValue.ToObjectConstruction does handle constructor arguments properly
  • Aspect MethodImplementationAspect missing from Silverlight build
  • Aspects inherited across assemblies are not visible in the Visual Studio Extension
  • AspectTypeDependencyAttribute does not work on Silverlight
  • Assemblies loaded by the native host may be given insufficient permissions
  • Assembly-level MulticastAttribute does not respect AttributeTargets=Struct/Delegate/Enum/...
  • AssemblyLoadException when loading mixed-mode assemblies, even when not required by PostSharp
  • Comparing method signatures ignores the method arity
  • Exception thrown on invalid lexical scopes
  • Expose the method Platform.LoadAssemblyFromFile to PostSharp.dll
  • Extension for VS2010 installed in wrong directory if VS is installed in non-default location
  • Generic parameter constraints are not loaded properly when lazy loading is enabled
  • Incorrect behavior when an IAspectProvider provides an invalid ObjectConstruction
  • Invalid code generation when IInstanceScopedAspect has explicit (private) implementation
  • IValidableAnnotation not executed if no aspect is included in the project
  • MulticastAttribute: symbols < and > in regular expressions are incorrectly escaped
  • NullReferenceException when introducing a method with custom attributes on parameters
  • OnExceptionAspect generates suboptimal code
  • PostSharp 2.0 is not side-by-side compatible with PostSharp 2.1 when a project references both versions
  • PostSharp emits PE32+ headers instead of PE32.
  • PostSharp.Aspects.Arguments implements IList
  • Sample database not included with the ContactManager example
  • Several issues with ExternalAspects in Silverlight
  • System.InvalidCastException: Unable to cast object of type PostSharp.Hosting.DotNet.ManagedDotNet40Platform' to type 'PostSharp.Hosting.NativeDotNetPlatform'.
  • Update check process throws exception on build servers
  • With MSIL serialization, system properties of MulticastAttributes are serialized, but should not

Next milestone: PostSharp 2.1 CTP 2.

Happy PostSharping!


Join us on April 28th as Gael Fraiteur and Kendall Miller (Gibraltar Software) speak with this month's LIVE Webinar guest Gary Short about overcoming the timeless challenges developers face in building fast and scalable systems.

Gary ShortGary is a frameworks technical evangelist for DevExpress, C# MVP, and frequent speaker at user groups and conferences throughout the UK, Europe and the U.S. -- including the upcoming DDD Scotland and TechEd conferences.

With presentation titles including How to Eat an Elephant, Data Mining the Social Web, and Credit Crunch Code, it's clear that Gary enjoys speaking about technical architecture.

In this month's LIVE Webinar you'll get a sneak peek at Gary's latest presentation, titled:

Asymptotics and Algorithms – What You’ve Forgotten Since University

Join the LIVE Webinar and discover:

  • The lost art of calculating which algorithm is more efficient than another, and...
  • Why managed environments, like .NET, may not know best.

Kendall MillerGiven the "big picture" performance theme of this month's Live Webinar, co-host Kendall Miller, will debut his latest presentation, titled:

Natural Laws of Software Performance


Join the LIVE Webinar and discover:

  • The natural laws that govern software performance
  • How technology has changed the tactics of high performance but is still at the mercy of these natural laws
  • How understanding these laws will help you create applications that scale without arcane tricks or endless hardware

Sign Up Now and Receive a Live Meeting URL Prior to Kickoff >>