A profile is the UI state of a client that defines menus, ribbon pages, toolbars and dock windows. There can be multiple profiles for a client, but only one can be active (displayed) at a time.
Splitting functionality into profiles can reduce screen clutter allowing the user to focus on specific tasks.
Profiles can be hierarchical with a profile having sub-profiles.
Sub-profiles can make use of their base profile’s functionality and implement additional functionality as required.
There can be two types of profiles, stand-alone and add-on .
A stand-alone profile re-configures the entire UI of a client.
An add-on profile contributes added functionality to an existing profile.
Method that gets executed immediately after activating the profile.
User can override the method to show/hide base profile ribbon pages.
Method that gets executed just before activating the profile.
User can override the method to build his own GUI.
Method that gets executed immediately after deactivating the profile.
User can override the method to remove the base profile ribbon pages that are added in activate method.