We recently teamed up with the good folks at LinkedIn .Net User Group (LIDNUG) to help raise awareness about the benefits of aspect-oriented programming (AOP). On November 3rd, from 9:00 AM (PT) to 10:30 AM (PT), Gael will speak about the problems with conventional programming, give a gentle introduction to AOP, show how it works, and explain why .Net developers should be using it to eliminate crap code from their lives.

Sneak Preview:

Produce Cleaner Code with Aspect-Oriented Programming

Here is the agenda:

  1. 0 to 15 min: AOP Introduction and Myth Busting.

    The session begins with a gentle introduction to AOP and sets the record straight on some common, yet misinformed, beliefs about AOP.

  2. 16 to 30 min: Live Coding.

    Gael shows how to generate more concise and readable code by using aspects to refactor a multi-threaded WPF application.

  3. 31 to 45 min: Build-time Benefits.

    Gael explains the advantages and benefits of build-time weaving compared to DynamicObject.

  4. 46 to 60 min: Live Coding.

    Gael demonstrates how AOP can implement complex patterns for you: e.g. generate all the code behind INotifyPropertyChanged

  5. 61 to 90 min: Q&A

    Gael answers your questions about AOP

Join us next Wednesday, November 3rd from 9:00 AM (PT) to 10:30 AM (PT) via Live Meeting.

Reserve your spot at the LinkedIn .Net User Group event announcement page here:

We look forward to seeing you there.


There’s been some remarkable contributions from the community these last days; so let me write just a few words to introduce them.

Attribute-Based Caching

Adam Bell released an aspect library that addresses a single concern: caching. In Adam’s own words:

Cache expensive methods calls with a declarative attribute. No custom code required. Configure caching method using unity. Options include In-process and Out-Of-Process and Off. Out-Of-Process uses Microsoft ApplicationServer.Caching.

The project supports declarative cache invalidation. It is released under BSD license and hosted on CodePlex.

For more information about this project, read Adam’s blog.

Unit Testing of Aspects

Michael Collins blogged about implementing method tracing using log4net and PostSharp. Déjà vu? Wait. It’s true that tracing is the “hello world” example of AOP, but Michael gives us a production-ready implementation.

The most remarkable point of this post, for me, is that Michael shows us how to unit-test the aspects using a mocking framework. Very cool!

Many thanks to Adam and Michael for their great contributions!

Happy PostSharping!



I’ll be in Berlin, Germany, at TechEd Europe between October 7th and 12th.

I would love to meet some PostSharp users there. If you’re one of those and will attend the conference, I want to hear your feedback: your use case, your experience (positive and negative), your wishes for future versions.

Please drop me an email at gael@sharpcrafters.com.