What about PostSharp

Topics: ccisharp
Jan 4, 2010 at 10:33 AM

Guys, I'm curious why you simply didn't contact PostSharp author and tried to agree about using his framework.

Jan 4, 2010 at 2:00 PM

The goal of CciSharp is simply to illustrate one way that the CCI framework can be used. It is kind of hard to do that using PostSharp. ;-)

The underlying approach is also sufficiently different that CciSharp is interesting in its own right.

Jan 4, 2010 at 7:52 PM

It seems I commented wrong project ;) I did this just because your samples were looking as what exactly PostSharp is designed for.

CCI framework itself seems more generic one (or, better, it's designed to cover wider range of use cases). Anyway, thanks for pushing me into right direction ;)

Jan 17, 2010 at 7:05 AM

My view is that that CCI is exactly the namespace PostSharp.CodeModel, or Mono.Cecil, and CciSharp is PostSharp.Extensibility.

What most people see of PostSharp is PostSharp.AspectInfrastructure, PostSharp.CodeWeaver, and PostSharp.AspectWeaver. The Mono 'equivalent' is the defunct AspectDNG or today LinFu, and I don't know any CCI equivalent.

I find it annoying for the community to have multiple post-compilation platforms (which cannot work together nicely), but obviously nobody of Microsoft, Novell, or SharpCrafters will want to move to another's platform. To my knowledge, PostSharp.Extensibility is the first MSIL rewriter designed from scratch as a platform. It's also symptomatic that Code Contracts and CciSharp are different projects.

I think the current hype of low-level MSIL transformations (using CciSharp or Cecil) will go away quite soon, as users will discover how difficult it is to move from the prototype to production (in other words, it's fairly easy to make an easy example that works, but much more difficult to make a transformation that can be used in any situation). MSIL transformations do not address the problem of composition (many transformations applied to the same element of code), to which PostSharp.AspectInfrastructure brings a robust solution.

Gael Fraiteur, PostSharp founder.

Feb 27, 2011 at 8:23 PM

As Herman mentionned, CciSharp is a sample that can be used to learn about CCI. Samples are more interresting when they solve real issues like the ones we've implemented in CciSharp. This is not meant as full blown Aspect oriented framework - just a sample.