An empty space lies in the open source community between those who happen to use the CLI (Common Language Infrastructure) running on Windows (.Net Framework from MS) and|or Linux (Mono). This empty space represents the lack of a model on how to build a Good Application (tm).
Of course, there are several factors that contribute to creating a Good Application, and from our standpoint one of them is good architecture. Good architecture is accomplished by having cohesion, single classes with well-defined responsibilities, orthogonality and loosely coupled components (providing reusability among different projects).
From our experience, inversion of control can help even an inexperienced team to accomplish good architecture. However, the usage of this design principle is a matter of taste, and people should not feel obligated to use it.
Castle's goal is to provide a set of standalone tools and an inversion of control container implementation in order to create a meeting point for these tools.
Retrieved from "http://wiki.castleproject.org/index.php/Castle:Rationale"