1. A method for customizing a software application, comprising: providing a standard set of components for the software application, the standard set of components being created by a developer and comprising visual application components, business logic components, and configuration components; identifying a selected set of components from the standard set of components based on selections made by a customer; and forming a customized application program from the selected set of components, wherein the customized application program is capable of performing at least one task for an end user.