What Sets Caraway Apart?
Posted by Nicholas Blumhardt | September 11, 2007 14:07
This seems like a good time to summarise why Caraway is a significant addition to the containers already available for .NET:
Multiple Services per Component
Components provided through Caraway can expose multiple services. This requirement is fundamental to many OO designs, but the complexity it brings to lifecycle management means that many other containers ignore it.
Accumulating Collections
In many cases, more than one component needs to provide the same service. Other containers support arrays, but in Caraway multi-valued registrations are first class concepts that can be used as regular dependencies shared between other components.
Caraway also allows these collections to be incrementally appended to in the registration process - a must if the application's default set of programmatically-registered plug-ins is to be augmented with those registered through a configuration file.
Lambda Expression Activators
Caraway has been designed to take advantage of new language features in C# 3.0 that make it simple to register and create component instances without using reflection.
MIT Licensed
An IoC container can quickly become a fundamental part of an application. Sometimes this might mean that customisations to the container become unavoidable: with Caraway you can modify the source code and redistribute it without worrying about making your changes or application source available to the world (patches are still appreciated of course!)
Unintrusive
Caraway is designed to be friendly to existing application components and does not require any attributes to be added or assembly references to be made to the container.
Dependency-Free
Only one small assembly is required in order to use Caraway in an application. The container does one thing, but does it well!
Comments
There are no comments on this article.
Disclaimer: These articles represent the opinions of the authors and may not match the official position of Ubik Systems Pty. Ltd. Confirmation should be sought on all matters involving professional advice.
