1. A computer-readable storage media having instructions stored thereon that when executed by a computing device cause the computing device to perform acts, the acts comprising: allowing a user to define a selected domain in which to build an application; presenting an interface that provides at least two levels of abstraction to the user, wherein the at least two levels of abstraction comprise a designer level of abstraction where components are presented graphically and a developer level of abstraction where the components are presented textually; receiving, via the interface, a user input identifying an individual level of abstraction selected by the user; presenting a set of domain-specific components supported by different frameworks having different associated application programming interfaces (APIs), wherein the set of domain-specific components are presented at the individual level of abstraction selected by the user and the user can select individual components from the set to build the application; receiving a first user selection of a first domain-specific component supported by a first framework having an associated first API and a second user selection of a second domain-specific component supported by a second framework having an associated second API; building the application and including, in the application, both the first domain-specific component supported by the first framework having the associated first API and the second domain-specific component supported by the second framework having the associated second API; and executing the application by providing first instructions to the first domain-specific component in accordance with the associated first API and providing second instructions to the second domain-specific component in accordance with the associated second API.