1. A method for generating an application from data, the method comprising: importing a first set of data from a data source to a design surface; analyzing the first set of data from the data source to identify one or more subsets of data; inferring a first data type from the first set of data based on the analysis of the first set of data; identifying a default control type for the inferred first data type; generating a first control type based on the identified default control type for the inferred first data type; inferring a second data type from the first set of data; generating a second control type for the inferred second data type, wherein the first control type and the second control type are different; and generating a layout for an application document that includes the first control type and the second control type, wherein the layout is generated automatically without user or administrative intervention.