The 'Week of PostSharp' is a joint promotion with Manning Publications where we highlight a new book each day that is special to us and hand-picked by the PostSharp team – with a small introduction about how it connects to what we are doing. We also collaborated with Manning to select a second book for each day of the week, and will be offering our choices at a 50% discount on their site! You can even read excerpts from some of the books online for free by clicking on the links below.

We hope you enjoy the deals! We’ll be adding new posts with the daily discount code throughout the week, so stay tuned.

Back in the 50s, programmers had a very hard time delivering even the simplest features because they had to work at a very low level of abstraction. There was nothing as a variable, field or parameter – just registry or memory cells. After decades of advances in compiler and runtime technologies, people barely think about memory management anymore.

Today, the industry is facing the same issue with multithreading. It is the use of low-level synchronization mechanisms that causes the notorious complexity of multithreaded applications. As in the 50s, we need to raise the level of abstraction to get back into productivity. At PostSharp, we believe design patterns, such as READER-WRITER SYNCHRONIZED OBJECT or ACTOR, can give us a better model for multi-core development. That’s why we build PostSharp Threading Pattern Library: a library of ready-made implementations of multithreading design patterns that you can use in your applications, today.

Obviously, we aren’t the only one trying to improve multithreading programming. The async/await feature of C# 5.0 makes it incredibly easier to write asynchronous code, but it does not address the issue of thread safety. Functional programming does address the thread safety issue at the cost of a paradigm shift.

Learn more about these technologies in today’s books which you can now purchase with 50% discount - but hurry, the offering is valid only until August 20th, 12 midnight EST:


C# in Depth, Third Edition updates the best selling second edition to cover the new features of C# 5, including the challenges of writing maintainable asynchronous code. It preserves the uniquely-insightful look into the tricky areas and dusty corners of C# that only expert Jon Skeet can provide. In this third edition, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by providing crystal-clear explanations of "behind the scenes" issues.

Download Free Chapter (PDF)   |   Purchase with 50% discount using the following code: pswkd1


The book Real-World Functional Programming teaches the ideas and techniques of functional programming applied to real-world problems. You'll see how the functional way of thinking changes the game for .NET developers. Then, you'll tackle common issues using a functional approach. The book will also teach you the basics of the F# language and extend your C# skills into the functional domain. No prior experience with functional programming or F# is required.

Download Free Chapter (PDF)   |   Purchase with 50% discount using the following code: pswkd1




We just pushed PostSharp 3.0.13 online, and this is just to inform you of the awful update procedure from previous builds.

Why is the upgrade procedure cumbersome?

PostSharp 3.0.12 included NuGet 2.1 in its payload. Unfortunately, because of limitations of the Visual Studio Extension Installer (VsixInstaller), it was not possible to install PostSharp when NuGet 2.2 was already installed. We had other problems with the way that VsixInstaller handled dependencies (I’m quite confident to say that it is a broken feature), so we decided to handle dependencies manually, without relying on VsixInstaller.

Because of the dependency to NuGet, PostSharp needed to be installed for All Users, requiring elevation during installation. But since we don’t have the dependency to NuGet anymore, PostSharp does not need to be installed with elevated privileges anymore. This is one more situation that VsixInstaller does not handle properly.


What is the proper procedure?

Since Visual Studio Extension Installer is not able to upgrade PostSharp 3.0.12 to 3.0.13, you will have to uninstall PostSharp manually.

  1. Start Visual Studio with elevated privileges.
  2. Go to Tools / Extensions and Updates, click on PostSharp, then click Uninstall
  3. Install the new PostSharp

That’s it. Perhaps that was not so awful.

Remember that this procedure updates only the Visual Studio Extension for PostSharp. You can upgrade the compiler itself using NuGet.

Happy PostSharping!


I am happy to announce the release of PostSharp 2.0 CTP 3, available for download today.

This is principally a bug fixing release, since more than 40 issues have been solved. The most significant improvement is the Customer Experience Improvement Program (CEIP): the feature, fully opt-in, is able to automatically report unhandled exceptions in PostSharp, and collects some anonymous usage statistics. The CEIP has been included in an intermediate build between CTP 2 and CTP 3, and most issues solved in CTP have actually been reported by the CEIP. For uploading, our implementation uses Microsoft BITS, a background installed with Windows, so the process never interupts your work and does not consume the bandwidth when you're using it (and it very scalable on our server ;).

Except that, sadly enough, there has been no progress in features. We have been fully busy preparing the launch of the new company and the new web site. I'm glad to say that, although we are a couple of weeks late on the technical point, we made good progress with commercial stuff. You'll hear more about that in a couple of weeks.

Just as in CTP 2, the following features are not included in CTP 3 but are planned for a future preview of 2.0:

  • Conceptual Documentation;
  • Reference Documentation and Conceptual Documentation of PostSharp SDK (previously PostSharp Core);
  • Support for Silverlight and Compact Framework.

This release is hardcoded to expire on March 1st, 2010, and in the mean time there will be a new release.

Happy PostSharping!