1. A computer-readable storage media having instructions stored thereon that when executed by a computing device cause the computing device to perform acts, comprising: allowing a user to define a domain in which to build an application; and, presenting a set of domain-specific components at a level of abstraction consistent with the domain, wherein the user can select individual components from the set to build the application.