The term component is widely used in the Sitecore community, but will be periodically interchanged with other terms: rendering, user control, widget and a whole host of others. In this post we explain what a component is in attempt to clarify the official terminology used by Sitecore.
A presentation component in Sitecore are the blocks of content that make up a page. A developer creates these components using a variety of different programming techniques (which is why we see the different name). Header, footer, navigation, breadcrumb would all be common presentation components found in a Sitecore implementation.
The power of a component is that it allows developers to build templates and for content authors to place and move components on a page. This provides a great deal of freedom in content layout. Additionally, if a presentation component was built by a developer to support a datasource, the component can be personalized or tested using Sitecore xDB.
If a component is datasource driven this will mean that your component will be linked to a discrete piece of content – a Sitecore item - with a defined template. This is how personalization and testing is supported – by making the component load the content from the alternative item. This also provides some other implied capabilities:
- A datasource may be used by more than one component on more than one page – hurray for content sharing
- If sharing is important, the datasource item can be stored in many different locations to facilitate sharing (and security)
When planning your Sitecore implementation, some key questions at the wireframe development stage would include:
- Which regions of the page/wireframe are discrete components?
- Do you intend to allow content authors to add them to a page or are they part of the page template?
- Do any of the components require support for personalization / or testing?
- If you intend for the component to share content, at what level – across a section of the site? across the entire site? specific users?
- Are there special requirements for mobile support?
With this information in hand the development team will be better equipped to develop a robust, but easy to use solution.
Some official resources from Sitecore: