1. A computer-implemented method comprising: selecting, on at least one computer, a plurality of patterns in a visual modeling environment and establishing connections between the plurality of patterns to create a design time graphical representation of one or more user interfaces of an end-user application, wherein each pattern performs one or more user interface tasks and different patterns performing different user interface tasks have different graphical representations, and wherein at least a first pattern of the plurality of patterns has a visual representation in the end-user application and at least a second pattern of the plurality of patterns does not have a visual representation in the end-user application, and wherein the plurality of patterns in the visual modeling environment further comprise syntax rules governing how the patterns can be composed and semantic rules governing how the patterns will be interpreted to generate the runtime version of the end-user application; configuring the plurality of patterns to specify application specific properties of each pattern to produce configuration data, the configuration data defining the behavior of the one or more user interfaces in the end-user application, wherein configuring the second pattern not having a visual representation in the end-user application comprises specifying a back-end system and data to be used by the second pattern; storing the configuration data in a repository; receiving user input defining an extension to at least one pattern, wherein a first pattern in the plurality of patterns has a property that indicates whether or not the first pattern is extendable, and querying the first pattern to determine whether the first pattern is extendable; and generating a runtime version of the end-user application using the configuration data.