1. A system for providing a graphical user interface for a component based application program, comprising: at least one user interface component; at least one component of an application program, said component having a workflow defined for it, said workflow associated with one of said at least one user interface components; at least one predefined user interface layout defining the arrangement of at least said at least one user interface component; a renderer to render a graphical user interface according to said at least one predefined user interface layout and a present context for said component based application program; and an application proxy to manage communication between said renderer, said at least one component of an application program and said at least one user interface component such that said graphical user interface is rendered upon a change in said present context.