Many projects today use a component-based approach to developing software. Component-Based Development (CBD) 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.
Software is being built in the context of different scripting and programming environments used on different platforms with different programming languages. On many projects, components are purchased, developed, and assembled, thus an important distinction between component developer and component assembler has emerged.
Component reuse in graphical user interfaces has been traditionally popular. More and more, enterprise-level packages and frameworks are being componentized, and business applications are being implemented on the world-wide web and in multi-tier architectures that are rich with components in all areas. On the client, Java applets, JavaBeans, and ActiveX controls are being used and reused. On the server, we see Java Servlets, EnterpriseJavaBeans, Active Server Pages using Microsoft Transaction Server with COM objects, and CORBA implementations. In addition, component frameworks are being developed that can be extended into the business domain via components.
Central concepts to this context are ComponentDefinition and ComponentFrameworkDefinition, where discussions on their definitions are occurring.
This page mirrored in ComponentDesignPatterns as of April 29, 2006