Sitecore Pipelines
Pipelines are one of Sitecore’s essential integration concepts. They are used to extend existing functionality, and to allow custom functionality to be extended in the future. They also provide a level of documentation and transparency by virtue of how they are configured.
What is a Pipeline?
A pipeline is basically a method whose flow is defined using XML.
A pipeline consists of a sequence of processors. A processor is a .NET class that implements a method. When a pipeline is invoked, the processors are run in order.
Pipelines are used to control most of Sitecore’s functionality. Processes ranging from authentication to request handling to publishing to indexing are all controlled through pipelines.
Pipelines are defined in Web.config
and in Sitecore patch files.
The following is an example of the pipeline that is responsible for rendering a page:
<renderLayout>
<processor type="Sitecore.Pipelines.PreprocessRequest.CheckIgnoreFlag, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.PageHandlers, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.SecurityCheck, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.InsertRenderings, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.PageExtenders, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.ExpandMasterPages, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.BuildTree, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.InsertSystemControls, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.InsertUnusedControls, Sitecore.Kernel" />
<processor type="Sitecore.Pipelines.RenderLayout.BrowserCaching, Sitecore.Kernel" />
</renderLayout>
Sitecore’s Pipelines
Sitecore includes more than 140 pipelines. Each new version of Sitecore adds pipelines. Installing Sitecore modules also results in more pipelines being added.
The following is a list of some of the more commonly used pipelines. It is unlikely you will ever call any of these pipelines directly, but it is not unusual to extend these pipelines.
Pipeline name | Defined in | Args type | Description |
---|---|---|---|
initialize | Web.config | PipelineArgs | Runs when the IIS application pool is started. Processors handle initialization tasks that need to run once. |
httpRequestBegin | Web.config | HttpRequestArgs | Handles the HTTP request. This includes tasks such as resolving the context item, device and presentation settings. |
insertRenderings | Web.config | InsertRenderingsArgs | Determines the presentation components to include when rendering an item. |
renderField | Web.config | RenderFieldArgs | Runs when the FieldRenderer is used to render a field value. |
Sitecore 8 Pipelines
Sitecore 8 introduced a large number of additional pipelines. See links below for more information about these pipelines: