Some running examples to keep focus

Feb 8, 2010 at 11:00 PM

Discussing each adapter individually seems to be necessary (i.e. we've had some good discussions around Func that are shaping that spec) but it would also be useful to zoom out and look at some real world frameworks we may target. It would be nice to step back and look at the house we're building, as well as the individual bricks.

Given that our goal is something like "to provide a portable IoC-friendly alternative to Service Locator without extensive container configuration" I'd like to actually implement these concepts in some frameworks that would otherwise need IServiceLocator or container-specific configuration today.

Two that spring to mind are:

Porting an existing framework to a "components-only" design is a non-trivial piece of work of course, and this would include building prototype adapter implementations for some more containers.

One approach might be:

  1. Get a build of the frameworks running on top of several containers, using container-specific adaptation
  2. As this project progresses, chip away at the container-specific adaptation until we have none (or little) remaining

We'd also need a way to share the "experimental" source code.


Feb 10, 2010 at 3:08 AM

Hi Nick,

It sounds like a good plan. We can even incrementally convert these applications as soon as we can all agree on each draft proposal. The Func<T> proposal is pretty straightforward, and it's a great place to start. This should become very interesting given that CodePlex supports Mercurial and we can pretty much push/pull changes back and forth. I can't wait to get started :)




Philip Laureano

Feb 13, 2010 at 11:31 AM

I'd add Prism and possibly Mass Transit. Both depend on CSL.


Feb 21, 2010 at 2:42 AM

Have a look at Caliburn's trunk. It extends CSL to include registration and contains adapters for 7 popular IoC Containers plus it's own built-in container.  I've received emails from users asking whether or not I could split it out into its own open source project.  Users seam to like the abstraction quite a bit.  It's been in existence since before CSL (about 3 years ago) and has been re-written 3 times, so I feel fairly good about it's simple technique.

Feb 22, 2010 at 5:25 AM
Edited Feb 22, 2010 at 5:27 AM

Rob, the goal here is to avoid exposing a container altogether, rather to move applications toward a model where they can get their requirements / dependencies filled without requiring any kind of direct dependency on a locator / container. 

Feb 22, 2010 at 5:36 AM

I figured that out shortly after I posted ;)  I recommend that you take some time to update the project description on the landing page.  Common Context Adapters isn't really meaningful without an explanation.

Feb 22, 2010 at 5:24 PM
gblock wrote:

I'd add Prism and possibly Mass Transit. Both depend on CSL.


I may got it wrong, but are you guys trying to make something close to Marcus Bretton's Siege Container, available here:

Feb 23, 2010 at 6:16 AM

Looking at Siege I would say no. Siege appears to be a common container / locator abstraction. With CCA we're trying to allow components to get their dependencies fulfilled as well as new components to be created, without usage of a locator.


Feb 23, 2010 at 6:17 AM

Agreed we are still in infancy. :-)