Extensible architecture for template-baser user setting management by
creating logical groupings of per-user settings using different template
types. A manageable way to assign templates to sets of users based on
different criteria is provided. Templates can be defined in a declarative
format (e.g., XML), which declarative format is developed such that
various user interface (UI) pieces, third-party applications, and
different client types can easily understand the templates. Extensibility
of the architecture is supported for defining the templates such that
external third-party application writers can make use of the provided
infrastructure to add to existing templates or create new template types,
and to seamlessly integrate into the existing infrastructure.
Additionally, the per-user settings within the templates can be enforced
on the server side, including the enforcement of future settings and
template types.