Castle Project has a well defined mission, that can be easily stated as
To provide a simple set of tools to speed up the development of common enterprise and web applications while promoting good architecture.
We also need to state what we do not want to provide and what we do not want to be labeled:
- Castle is not a set of classes that must be specialized to create your application. Castle should not force you to adhere to a specific architecture.
- Castle should not be all-or-nothing. The developer can use the tools he wants to use, and at the same time, use different approaches in different areas of his application in a peaceful manner.
- Castle should not be configuration-driven, and more important, should not be XML-driven. Configuration should be used only to express external settings, or as a hint to help the application to assemble itself. We shall look forward to delivering self-assemblying capabilities and convention over configuration.