A method for generating a distributed application in a developer environment, the method comprising: receiving a selection of a template at a design surface implemented on a user interface the template including a data schema; receiving a set of data for the template; binding the set of data to the template based on the data schema; identifying a least a portion of the set of data for extraction; determining a location where to store the extracted portion of data, wherein a data storage location mechanism identifies a default storage location; extracting the identified portion of the set of data; storing the extracted data at the determined location; re-binding the extracted data at the determined location to the template, such that access to the template provides access to the extracted data at the determined location; wherein identifying the portion of the set of data for extraction further comprises: identifying one or more data types of the set of data, the one or more data types including at least one of local data, dynamic data, or remote data, and wherein determining a location where to store the extracted portion of data comprises: maintaining local data, which are static data, at the application by binding the data location to the application, storing dynamic data, which have local origination but may change at runtime of the application, at the default storage location as suggested by the developer environment, wherein the default storage location is a shared storage location, wherein dynamic data are accessible by different users, and maintaining remote data at the current storage location. receiving a selection of a template at a design surface implemented on a user interface the template including a data schema; receiving a set of data for the template; binding the set of data to the template based on the data schema; identifying a least a portion of the set of data for extraction; determining a location where to store the extracted portion of data, wherein a data storage location mechanism identifies a default storage location; extracting the identified portion of the set of data; storing the extracted data at the determined location; re-binding the extracted data at the determined location to the template, such that access to the template provides access to the extracted data at the determined location; wherein identifying the portion of the set of data for extraction further comprises: identifying one or more data types of the set of data, the one or more data types including at least one of local data, dynamic data, or remote data, and wherein determining a location where to store the extracted portion of data comprises: maintaining local data, which are static data, at the application by binding the data location to the application, storing dynamic data, which have local origination but may change at runtime of the application, at the default storage location as suggested by the developer environment, wherein the default storage location is a shared storage location, wherein dynamic data are accessible by different users, and maintaining remote data at the current storage location. identifying one or more data types of the set of data, the one or more data types including at least one of local data, dynamic data, or remote data, and wherein determining a location where to store the extracted portion of data comprises: maintaining local data, which are static data, at the application by binding the data location to the application, storing dynamic data, which have local origination but may change at runtime of the application, at the default storage location as suggested by the developer environment, wherein the default storage location is a shared storage location, wherein dynamic data are accessible by different users, and maintaining remote data at the current storage location. maintaining local data, which are static data, at the application by binding the data location to the application, storing dynamic data, which have local origination but may change at runtime of the application, at the default storage location as suggested by the developer environment, wherein the default storage location is a shared storage location, wherein dynamic data are accessible by different users, and maintaining remote data at the current storage location.