Castle Project offers two Inversion of Control Containers. The MicroKernel and the Windsor Container. Their documentation are kept together as the Windsor Container just augments the MicroKernel functionality. | |
![]() | ![]() The Castle MicroKernel is an inversion of control container that was designed towards extensibility. It combines facilities to grow orthogonally. These facilities work side-by-side, without interfering or depending on each other, to allow you to easily extend the container functionality by plugging in new concerns and semantics. You can use it as an embeddable container on tools that support extensions or plugin support, such as tools which exposes configurable pipelines or compilers. The container is set up and configured through code, and can be extended to work with a configuration system that your project supports. |
![]() | ![]() Castle Windsor aggregates the MicroKernel and exposes a powerful configuration support. It is suitable for common enterprise application needs. It is able to register facilities and components based on the configuration and adds support for interceptors. |
![]() | Getting StartedOur Container Getting Started is the best source of information for newcomers. You will be acquainted with the project in small steps. After that you can always consult the documentation for more in-depth information. |
![]() | DocumentationBoth MicroKernel and Winsdor Container are fully documented. The documentation is versioned based on the released version. You should also take time to read the FAQ and the project's Roadmap. |
![]() | Why would I use it?The Castle MicroKernel and Castle Windsor are good options if you are fond of the Inversion of Control principle. This happens a lot to developers that come from the Java camp. The MicroKernel is undoubtably the most extensible container for .Net. This is a high point as you can use it as the rendezvous for frameworks your company has, combining them. IoC containers favors reuse as they allow you to use a natural idiom to expose the component's dependencies. This allow components to be used with or without containers. Hence you quickly end up with a library of reusable components that can be shared among projects, as long as you apply the Separation of Concerns principle. |
![]() | Why would I not use it?You should not use an Inversion of Control container if you are not familiar with the concepts and if you do not realize the problems they try to solve. Also, depending on the size and complexity of the project, an IoC container might be overkill. Prefer to use it on medium to large projects. |
VersionThe latest Castle Inversion of Control package release is 2.1. | |
Container Site MapIf you want to find some document fast, you might want to check the Container site map. | |







