For developers: Build the backend UI with Control definitions
Control definitions in Sitefinity CMS are a developer concept that enables building structured declarative user interfaces. They facilitate reuse of components when building the backend UI and also enable third-party developers to plug their own to extend that UI. Some of the benefits of control definitions include:
- Ready to use components for commonly used functionality
- Declarative UI – specify what should appear where without actually implementing it
- Strictly defined UI structure – makes duplication easy
- Default values and behavior – override existing look and functionality by plugging in your own
- Ability to redefine existing UI from configuration
- Extensibility – an easy way to implement custom UI in the backend
- Persistence – a way to save properties of a control
The backend of a module has UI elements common to other modules.
- At the top edge, Navigation dropdowns that provide access to the primary sections
- On the left side of the header, the title of the current module name
- Beneath the header, the Toolbar provides tools that apply to listed items
- In the body, the Sidebar on the right side provides access to relevant tools and features
- The rest of the body area is a grid that lists the module's items
Those are pretty much the same for all modules, pages and templates. The grid can be further broken down into different columns, the sidebar into different links and filters. Sitefinity CMS has built-in controls implemented for all those UI elements and the elements they are composed of. They all make use of definitions and you can use them in custom modules by just creating a new definition.
Definitions are persisted values for the properties of controls that control their behavior and look. The rest of the topics in this section go through the details about control definitions.