1. A machine-implemented method for providing customizable data objects comprising: storing, via the machine, an abstract definition of an entity in metadata, the definition including a set of properties of the entity; generating a first entity view class based on the set of properties of the entity and including at least one property of the entity in the first entity view class; generating a second entity view class based on the set of properties of the entity and including at least one property of the entity in the second entity view class, wherein the first entity view class includes at least one property of the entity that is not included in the second entity view class such that the first and second entity view classes provide different views of and permit interaction with the same entity; and when programming against the first or second entity view class, allowing (a) only those properties included in the first or second entity view class, respectively, to be seen and modified, wherein modifying a property results in a modification of the definition of the entity, and (b) switching between the first and second entity view classes for different views of the entity.
2. The method of claim 1 further comprising loading all data associated with the set of properties of the entity when programming against said first or second entity view class.