Introducing Vessel
Sorry to frighten you on this Hallow's eve, but this post is not about yet another mediator. :-]
After finishing Liaison, I found myself coding in anger. What else could I cull from my stack? The obvious answer:
Kill the IoC Container.
Inspired by Ayende's IoC container in 15 lines of code, I wrote Vessel as a stripped down IoC on which to hang the mediator and any other singletons. I bloated it up with some extra features, like registering a constructor function, but it's still small enough to read without scrolling. Vessel doesn't even have it's own GitHub repo yet.
For so few lines, I was able to remove both Autofac packages from my project. Right away, I'll stipulate that my container usage on this blog is beyond trivial. If I find myself in trouble, I can install-package my way back home again.
I think I am seeking bedrock. I want to know the pain that causes me to use a framework or library. I am way up the abstraction hierarchy here, but digging.
One interesting discovery I made through this exercise: a controller is a class that has exactly one dependency and that dependency is IMediator. I think this fact can be exploited in the future, but for the moment, I'm happy with this small victory.