Microsoft CRM is a metadata-driven product. This means that the vast majority of its work focuses on abstracting itself away from the implementation details that so often cause problems with upgrades and extensibility. In essence, the metadata layer abstracts the underlying data storage details, such as schema and data access, from the higher-level constructs of domain-logic implementation and the user interface (UI). The word metadata literally means "descriptive information about the elements of a set of data." Think of the metadata as a description of the underlying data structures that controls how the application (platform and user interface) operates and displays itself.
The platform uses the metadata to buffer itself from changes to the underlying database structures. If a table definition changes (for example, when adding or removing columns), the platform code continues to operate without any performance or degradation. This means that you can significantly alter Microsoft CRM to meet a particular business or vertical definition and still operate without interruption.
The Microsoft CRM platform is not the only consumer of the metadata. The application layer uses the rules inherent in the metadata to present the exact user experience offered by vertical solutions and customizations. These rules include attribute type definitions, entity definitions, and attribute context rules. Attribute metadata describes the underlying type structure of a given attribute, including the fundamental data type (such as string, integer, or date) and the information that effectively limits the attribute's type definition (such as its size and range values). Attribute context rules describe when and how to use a given attribute. For example, some attributes are write-once, such as order numbers; these attributes should not be changed after creation because changing them causes ripple effects throughout the business data. Other attributes are always read-only, which the platform itself supplies. The metadata captures all of these rules about context, but it also captures business-defined rules, such as business-recommended and business-required attributes.
© 2005 Microsoft Corporation. All rights reserved.