1. A computer implemented method implemented with a processor for implementing an extensible data structure, comprising: maintaining an extensible data structure for access by a web service, the extensible data structure comprising a data model that corresponds to attribute metadata and one or more storage objects, the attribute metadata identifying attributes associated with the data model, the one or more storage objects implemented as one or more entries in a set of database tables that hold data for each of the attributes identified by the attribute metadata, where the data model is extensible with a new attribute by adding the new attribute to the attribute metadata with a mapping from the attribute metadata to a storage object corresponding to an entry in the set of database tables to hold the data for the new attribute; providing an adaptor to interface between the web service and the extensible data structure, the adaptor using the attribute metadata to access the data for the attributes in the data model that are stored within the entries in the set of database tables, where the web service is insulated from a requirement for updating when the data model is updated since the web service accesses the data model through the adaptor; using the adapter to access a first or second versions of the data model, wherein the adapter comprises logic, such that external entities read and write data from a first version of the data model or a second version of the data model, corresponds to a set of rules that operates in conjunction with a rules engine and the adapter is applicable to multiple profiles; providing information accessed by the adapter to an external data source or a web service; detecting the object or the attribute for the second data model using the adapter; implementing objects as entries in a set of underlying database tables, wherein multiple database tables may be joined for each object, wherein the one or more attributes map to underlying data object, further comprising detecting the object or the attribute for the second data model using the adapter; wherein the object is definable and extendable by modifying the metadata, wherein the metadata comprises the first version of the data model or the second version of the data model and one or more attributes of the first version of the data model or the second version of the data model; wherein the data object further comprises data from at least one of surveys, data imports, and web services and the data is validated using a set of rules, and wherein a software application comprises a CRM application, and the object corresponds to data about a marketing or sales contact; extending, using a server computing system, a first version of the data model into a second version of the data model, the second version of the data model comprising the new attribute that either does not exist in the first version of the data model or is changed from the first version of the data model, the attribute metadata being configured to specify the new attribute for the second version of the data model; and the web service being associated with a software application uses the adapter to access the first or second versions of the data model instead of the web service associated with the software application directly accessing the first or second versions of the data model.