Announcing PostSharp 2.0 RC 2

by Gael Fraiteur on 29 Jun 2010

Good News First

I am happy to announce PostSharp 2.0 RC 2, available for download now. From this release, the low-level library PostSharp.Sdk.dll has now a class reference documentation and all APIes are frozen.

Apart from lack of SDK documentation, the feedback from RC 1 is excellent. The number of reported bugs was historically small.

And Now Bad News

I will probably annoy a lot of people with this release but I had to do it.  I originally wanted to document PostSharp.Sdk after the RTW of version 2.0. Documenting is typically the moment I discover inconsistencies and correct them, breaking backward-compatibility. So by postponing SDK documentation to the next release, I also would also have postponed the promise of forward possibility, and forced many users to stay with PostSharp 1.5. So I decided to do this API clean-up and class reference documentation now

When documenting, I figured out there was some mess in the namespace organization, since some low-level APIes shared the same namespace of high-level APIes. So I did some clean up there. This affects also PostSharp.dll.

Concretely, you’ll probably have to do a global find-and-replace of import statements. I believe it’s a matter of 10 minutes to do the changes. I apologize for inconvenience. I think it’s better for everyone to do this small change now than to drag a debt during several years.

Breaking Changes for Everybody

The namespace PostSharp.CodeModel and PostSharp.CodeModel.ReflectionWrapper has been merged into PostSharp.Reflection. This has pretty low impact; the following find-and-replace will do the trick:

Find what Replace with
using PostSharp.CodeModel; using PostSharp.Reflection;

Breaking Changes in the Low-Level API

Basically, all low-level namespaces have been moved under the namespace PostSharp.Sdk. For instance, instead of PostSharp.CodeModel you will have PostSharp.Sdk.CodeModel.The same for most namespaces contained in PostSharp.Sdk.dll (the exception is PostSharp.Hosting, which is not considered a part of the SDK).

Other changes

  1. Added an aspect (ManagedResourceIntroductionAspect) that allows to introduce a managed resource
  2. Solved a race in the pipe client.
  3. Solved an issue where IAssemblyLevelAspect.CompileTimeInitialize is not invoked.
  4. Solved issues with the “Update Avaibable” warning.

Happy PostSharping – and thank you for your understanding.