Sitecore Blog: @sitecorejohn blog

All About Pipelines in the Sitecore ASP.NET CMS

By John West, May 31, 2011 | Rating:  | Comments (11)

This blog post contains or links to everything I could find about processing pipelines in the Sitecore ASP.NET CMS.

Pipelines define a sequence of processors that implement a function, such as defining the Sitecore context for an HTTP request or generating a list of messages in the Content Editor. Pipelines assist with encapsulation, flexible configuration, separation of concerns, testability and other objectives. Once you start implementing features with pipelines, you wonder how you ever configured enterprise systems without them. For information about choosing between events, pipelines, the rules engine and validation, see my blog post Intercepting Item Updates with Sitecore.

Each processor in a pipeline contains a method named Process() that accepts a single argument and returns void. This method should return immediately if the processing context is not relevant to the processor. A processor can abort the pipeline, preventing Sitecore from invoking subsequent processors.

The type of the argument to the Process() method may be of a type specific to the pipeline or the default Sitecore.Pipelines.PipelineArgs. To create a pipeline processor, create a class that implements a method named Process() with the same signature as the other processors in the pipeline. Your processor can inherit from an existing processor, and you can add, remove, replace and rearrange processors in the pipelines to suit your requirements.

You can use the configuration factory to define parameters for pipeline processors. For more information about the configuration factory, see my blog post The Sitecore ASP.NET CMS Configuration Factory.

Sitecore separates the pipelines into two groups: those defined within the /configuration/sitecore/pipelines and /configuration/sitecore/processors elements in the web.config file. In general, those defined within the /configuration/sitecore/processors define pipelines that operate for UI requests and can interact with the user. Those defined with the /configuration/sitecore/pipelines tend to define system processes.

For descriptions and examples of some of the pipelines, see my blog post Important Pipelines in the Sitecore ASP.NET CMS.

Optional modules introduce additional pipelines through web.config include files. For information about how the Sitecore Digital Marketing System (DMS, formerly DMS) affects the default pipelines, see my blog post Important Pipelines in the Sitecore Digital Marketing System. For more information about web.config include files, see my blog post All About web config Include Files with the Sitecore ASP.NET CMS.

For information about creating and invoking pipelines, see Creating and running custom pipelines in Sitecore by Alistair Deneys.

If you have any questions about pipelines or information or resources to share about pipelines, please comment on this blog post.

More posts All About the Sitecore ASP.NET CMS.  

Tags: API, Architecture, Infrastructure, Integration

Comments

  • What Invokes This Pipeline in the Sitecore ASP.NET CMS? http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/04/What-Invokes-This-Pipeline-in-the-Sitecore-ASPNET-CMS.aspx

    - John West
    April 30, 2012 at 12:57 PM

  • Information about MVC Pipelines:

    http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/06/Posts-about-Using-MVC-with-the-Sitecore-ASPNET-CMS.aspx

    - John West
    June 19, 2012 at 10:15 AM

  • How to add parameters to pipelines: http://briancaos.wordpress.com/2010/12/10/parameters-in-sitecore-pipelines/

    - Brian Pedersen
    July 13, 2012 at 12:40 AM

  • http://sitecoreblog.blogspot.com/2012/10/create-your-own-pipeline.html

    http://adeneys.wordpress.com/2008/08/27/creating-and-running-custom-pipelines-in-sitecore/

    - John West
    October 09, 2012 at 11:56 AM

  • http://andyuzick.arke.com/2013/03/put-that-in-your-pipe-and-process-it.html

    - John West
    March 11, 2013 at 9:07 AM

  • http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/04/Sitecore-7-Pipeline-Profiling.aspx

    - John West
    April 29, 2013 at 1:41 PM

  • http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/05/Object-State-with-the-Sitecore-ASPNET-CMS.aspx

    - John West
    May 20, 2013 at 2:20 PM

  • http://sitecoreskills.blogspot.co.uk/2013/09/site-specific-pipeline-processors.html#!

    - John West
    September 23, 2013 at 9:02 AM

  • http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/09/Site-Specific-Pipeline-Processors-in-the-Sitecore-ASPNET-CMS.aspx

    - John West
    September 25, 2013 at 9:03 AM

  • A cornucopia of posts involving pipelines -- existing or custom -- and/or their processors (mostly custom):

    http://sitecorejunkie.com/category/pipeline/

    http://sitecorejunkie.com/category/processors/

    - Mike Reynolds
    October 08, 2013 at 12:26 PM

  • http://laubplusco.net/creating-custom-pipeline-in-sitecore/

    - John West
    October 25, 2013 at 7:24 AM

*{0} must be filled in.
*{0} must be filled in.
*{0} must be filled in.
Newsletter

Enter your email address to see subscription options or manage your existing account

Ball State University | Read Case Study >

We're very happy with Sitecore - it allows us to push things further than we ever thought we could.

- Kyle Parker, Senior Development Group Leader and Systems Analyst, Ball State University