[ComponentDesignPatterns | ComponentDesignPatternsStrawman] Many projects today use a component-based approach to developing software. ComponentBasedDevelopment stresses language and platform interoperability and separation of interface from implementation. Existing and newly constructed components are used on clients and servers to build flexible, reusable solutions. Component software is usually built in the context of different scripting and programming environments used on different platforms with different frameworks. The purpose of this pattern language is to capture some of the recurring themes and best practices in CBD that lead to winning software projects. To see the latest and greatest updates, see RecentChanges.