1. A computer program product, tangibly embodied in an information carrier, comprising instructions operable to cause data processing apparatus to: implement a reusable software component encapsulating functionality, multiple instances of the component being usable at the same time; the component having at least one visual representation; the component having a programming interface for programmatic interaction with the component; the component having a data-binding interface for data communication with the component; and the component having a visual interface for access to the at least one visual representation of the component.