SlideShare a Scribd company logo
1 of 23
DEEP DRIVE INTO THE
SITECORE CLIENT PIPELINES
This slideshow come from http://sitecoreblog.blogspot.be/ to explain
how the SPEAK client Pipelines works
Intro
In this slideshow, I will the Sitecore Client pipelines. This is poorly
documented even if it is used everywhere.
Do not confuse the client pipelines who are used by SPEAK on the client side
with the server pipeline that you probably already know well.
To be as concrete as possible, I will take an example: the process which
append when you click the add rendering button in the ExperienceEditor.
It was really difficult to explain it in a post or slideshow but I hope that it will
be clear enough if you have questions or remarks please let a message on
this blog post.
Overview
The next slide present an overview of the whole process.
Don’t be scared by the complexity we will go in it step by step.
You will probably need to go back to this slide to see the where we are
in the process.
When a command is
triggered, the
url /sitecore/shell/Applicatio
ns/WebEdit/WebEditRibbon.
aspx is called with
parameters and the
method OnPreRender() of
this class is called (1).
This class call the
base.OnPreRender() (2)
For this first call, IsEvent is true
and IsResult is false, so
the this.RaiseEvent(); is called (3). This
is where the Execute method of the
command's associated class is
triggered.
The Execute method initialize the
parameters and then the
Context.ClientPage.Start(this, "Run",
parameters) method is call.
This register a method to trigger in the
pipeline (4).
The Execute method is now finished and
the RunPipelines() method of
the ClientPage class is called.
The RunPipeline will start the
client pipeline.
This will add a
command "SetPipeline" in it to
be executed on the client side.
Then, Run() method registered
sooner is process (4)
args.IsPostback is false so the
code in (6) is executed.
The SheerResponse.ShowModal
Dialog add a
command ShowModalDialog in
the client pipeline.
The args.WaitForPostback() will
suspend the client process we
will see it later.
The call to the command (4) and the WebEditRibbon.aspx (1) is finished and return the
following pipeline as response in json.
As you can see, 3 commands are registered.
(The set attribute is automatic and I am not sure that it is useful :-) )
This response send by the server
contain the info about the
pipeline and the commands to
execute.
The Javascript
method scRequestHandler from
the Sitecore.js file will process
it.
This method call the handle(),
who call the resume() and then
the process() method is called
foreach command in the
pipeline.
This process() method is really
the core of this pipeline system
on the client side!
It is basically just a big switch
with all the possible messages
allowed by Sitecore.
Depending on the command
name, different javascript
method are triggered.
COMMAND PROCESSING
1. The SetPipeline command is processed and just set a pipeline id to the curent pipeline to be able to retrieve it later.
2. The ShowModalDialog command display the Dialog.
3. The process is suspend so the last command is not triggered.
When you click on the select
button of the dialog, the
javascript will call
the resume() method.
This resume method will call the
latest command before the
suspend.
In our case, it will call the
ShowModalDialog command
again.
For this second call to
the ShowModalDialog command,
the process will be almost the
same:
1. Call the WebRibbon.aspx
2. Call the base class (13). But,
this time, this.Isresult is true
so the method called is the
this.ResumePipeline()
REMARKS ABOUT THE STORAGE OF THOSE
PIPELINE ON THE SERVER SIDE
• The pipeline ID who have perform the request is stored into
Sitecore.Context.ClientPage.ClientRequest.Pipeline (ShortID format)
• The suspended pipelines are stored into the user session accessible with
WebUtil.GetSessionValue("SC_SUSPENDED_PIPELINES")
• The pipelines commands for the current pipelines are visible in debug in
Sitecore.Context.ClientPage._pipelines but this is a private variable.
BACK IN THE RUN METHOD OF
THE COMMAND
This time args.IsPostBack is true
and args.HasResult is true but
AddRendering.IsSelectedDatasou
rceDialogPostBack(args) is false
because you didn't have select
the datasource yet. So the code
in (15) is executed.
1. The WebRibbon.aspx return a new pipeline in Json with a new ID
2. The process() method will process the different commands and suspend after the ShowModalDialog
3. When you will select the datasource the JS resume method will relaunch the ShowModalDialog
4. The Run() method is called again.
You should have understood the process and it is the same for the subdialog where you select the datasource. So I will
go faster :-)
This time the
AddRendering.IsSelectedDatasou
rceDialogPostBack(args) is true.
So it will register an Eval
command in the returned
pipeline.
Here the kind of Json returned
by this pipeline
Of course this pipeline will be
executed and process the
commands. The Eval command
will have the
parameter chrome:placeholder:c
ontroladded
This message will be handled by
the handleMessage() method in
the PlaceholderChromeType.js
to add this rendering in the
page.
And.... "Ouf" that is it. I hope that you have now a view on the ways Sitecore work on
the client side
If you have questions about this, please let a message on this blog post and I will try
to reply as best as I can.

More Related Content

What's hot

Servlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servletsServlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servletsJavaEE Trainers
 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packagesvamsi krishna
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technologyTanmoy Barman
 
ASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsLukasz Lysik
 
Glassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load BalancerGlassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load BalancerDanairat Thanabodithammachari
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technologyvikram singh
 
Weblogic as a windows service
Weblogic as a windows serviceWeblogic as a windows service
Weblogic as a windows serviceRavi Kumar Lanke
 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0snaniix21_3
 
S E R V L E T S
S E R V L E T SS E R V L E T S
S E R V L E T Spatinijava
 
Mule management console installation with Tomcat
Mule management console installation with TomcatMule management console installation with Tomcat
Mule management console installation with TomcatSudha Ch
 
Servlet ppt by vikas jagtap
Servlet ppt by vikas jagtapServlet ppt by vikas jagtap
Servlet ppt by vikas jagtapVikas Jagtap
 
692015 programming assignment 1 building a multi­threaded w
692015 programming assignment 1 building a multi­threaded w692015 programming assignment 1 building a multi­threaded w
692015 programming assignment 1 building a multi­threaded wsmile790243
 
Mule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutesMule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutesGennaro Spagnoli
 
Request dispatching in servlet
Request dispatching in servletRequest dispatching in servlet
Request dispatching in servletvikram singh
 

What's hot (20)

Servlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servletsServlet/JSP course chapter 1: Introduction to servlets
Servlet/JSP course chapter 1: Introduction to servlets
 
Servlet 01
Servlet 01Servlet 01
Servlet 01
 
Javax.servlet,http packages
Javax.servlet,http packagesJavax.servlet,http packages
Javax.servlet,http packages
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
 
ASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline InternalsASP.NET MVC 4 Request Pipeline Internals
ASP.NET MVC 4 Request Pipeline Internals
 
Glassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load BalancerGlassfish JEE Server Administration - Module 4 Load Balancer
Glassfish JEE Server Administration - Module 4 Load Balancer
 
Selenium RC Overview
Selenium RC OverviewSelenium RC Overview
Selenium RC Overview
 
Initialize database in Mule part2
Initialize database in Mule part2Initialize database in Mule part2
Initialize database in Mule part2
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technology
 
Weblogic as a windows service
Weblogic as a windows serviceWeblogic as a windows service
Weblogic as a windows service
 
Sockets in nach0s
Sockets in nach0sSockets in nach0s
Sockets in nach0s
 
S E R V L E T S
S E R V L E T SS E R V L E T S
S E R V L E T S
 
Mule esb soap_service
Mule esb soap_serviceMule esb soap_service
Mule esb soap_service
 
Mule management console installation with Tomcat
Mule management console installation with TomcatMule management console installation with Tomcat
Mule management console installation with Tomcat
 
Servlet ppt by vikas jagtap
Servlet ppt by vikas jagtapServlet ppt by vikas jagtap
Servlet ppt by vikas jagtap
 
692015 programming assignment 1 building a multi­threaded w
692015 programming assignment 1 building a multi­threaded w692015 programming assignment 1 building a multi­threaded w
692015 programming assignment 1 building a multi­threaded w
 
Mule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutesMule esb How to convert from Json to Xml in 5 minutes
Mule esb How to convert from Json to Xml in 5 minutes
 
Request dispatching in servlet
Request dispatching in servletRequest dispatching in servlet
Request dispatching in servlet
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Web
WebWeb
Web
 

Similar to Sitecore - Deep drive into the Sitecore Client pipelines

servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0megrhi haikel
 
Mvc interview questions – deep dive jinal desai
Mvc interview questions – deep dive   jinal desaiMvc interview questions – deep dive   jinal desai
Mvc interview questions – deep dive jinal desaijinaldesailive
 
Unit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxUnit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxAbhijayKulshrestha1
 
Http programming in play
Http programming in playHttp programming in play
Http programming in playKnoldus Inc.
 
ASP.NET MVC introduction
ASP.NET MVC introductionASP.NET MVC introduction
ASP.NET MVC introductionTomi Juhola
 
Workshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJSWorkshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJSVisual Engineering
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083Divyam Pateriya
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...WebStackAcademy
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvcmicham
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuningprathap kumar
 
Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the RESTRoy Clarkson
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To MvcVolkan Uzun
 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)Amit Ranjan
 

Similar to Sitecore - Deep drive into the Sitecore Client pipelines (20)

Asp Net Architecture
Asp Net ArchitectureAsp Net Architecture
Asp Net Architecture
 
servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0servlet 2.5 & JSP 2.0
servlet 2.5 & JSP 2.0
 
Servlets lecture1
Servlets lecture1Servlets lecture1
Servlets lecture1
 
Mvc interview questions – deep dive jinal desai
Mvc interview questions – deep dive   jinal desaiMvc interview questions – deep dive   jinal desai
Mvc interview questions – deep dive jinal desai
 
Unit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptxUnit 38 - Spring MVC Introduction.pptx
Unit 38 - Spring MVC Introduction.pptx
 
Http programming in play
Http programming in playHttp programming in play
Http programming in play
 
ASP.NET MVC introduction
ASP.NET MVC introductionASP.NET MVC introduction
ASP.NET MVC introduction
 
70562-Dumps
70562-Dumps70562-Dumps
70562-Dumps
 
Workshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJSWorkshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJS
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 4...
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
J2EE-assignment
 J2EE-assignment J2EE-assignment
J2EE-assignment
 
Day7
Day7Day7
Day7
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 
Spring MVC to iOS and the REST
Spring MVC to iOS and the RESTSpring MVC to iOS and the REST
Spring MVC to iOS and the REST
 
Asp.net,mvc
Asp.net,mvcAsp.net,mvc
Asp.net,mvc
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
 
Integrating Servlets and JSP (The MVC Architecture)
Integrating Servlets and JSP  (The MVC Architecture)Integrating Servlets and JSP  (The MVC Architecture)
Integrating Servlets and JSP (The MVC Architecture)
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 

Recently uploaded

VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Denver Web Design brochure for public viewing
Denver Web Design brochure for public viewingDenver Web Design brochure for public viewing
Denver Web Design brochure for public viewingbigorange77
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 

Recently uploaded (20)

VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Denver Web Design brochure for public viewing
Denver Web Design brochure for public viewingDenver Web Design brochure for public viewing
Denver Web Design brochure for public viewing
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 

Sitecore - Deep drive into the Sitecore Client pipelines

  • 1. DEEP DRIVE INTO THE SITECORE CLIENT PIPELINES This slideshow come from http://sitecoreblog.blogspot.be/ to explain how the SPEAK client Pipelines works
  • 2. Intro In this slideshow, I will the Sitecore Client pipelines. This is poorly documented even if it is used everywhere. Do not confuse the client pipelines who are used by SPEAK on the client side with the server pipeline that you probably already know well. To be as concrete as possible, I will take an example: the process which append when you click the add rendering button in the ExperienceEditor. It was really difficult to explain it in a post or slideshow but I hope that it will be clear enough if you have questions or remarks please let a message on this blog post.
  • 3. Overview The next slide present an overview of the whole process. Don’t be scared by the complexity we will go in it step by step. You will probably need to go back to this slide to see the where we are in the process.
  • 4.
  • 5. When a command is triggered, the url /sitecore/shell/Applicatio ns/WebEdit/WebEditRibbon. aspx is called with parameters and the method OnPreRender() of this class is called (1).
  • 6. This class call the base.OnPreRender() (2)
  • 7. For this first call, IsEvent is true and IsResult is false, so the this.RaiseEvent(); is called (3). This is where the Execute method of the command's associated class is triggered.
  • 8. The Execute method initialize the parameters and then the Context.ClientPage.Start(this, "Run", parameters) method is call. This register a method to trigger in the pipeline (4). The Execute method is now finished and the RunPipelines() method of the ClientPage class is called.
  • 9. The RunPipeline will start the client pipeline. This will add a command "SetPipeline" in it to be executed on the client side. Then, Run() method registered sooner is process (4)
  • 10. args.IsPostback is false so the code in (6) is executed.
  • 11. The SheerResponse.ShowModal Dialog add a command ShowModalDialog in the client pipeline. The args.WaitForPostback() will suspend the client process we will see it later.
  • 12. The call to the command (4) and the WebEditRibbon.aspx (1) is finished and return the following pipeline as response in json. As you can see, 3 commands are registered. (The set attribute is automatic and I am not sure that it is useful :-) )
  • 13. This response send by the server contain the info about the pipeline and the commands to execute. The Javascript method scRequestHandler from the Sitecore.js file will process it.
  • 14. This method call the handle(), who call the resume() and then the process() method is called foreach command in the pipeline. This process() method is really the core of this pipeline system on the client side! It is basically just a big switch with all the possible messages allowed by Sitecore. Depending on the command name, different javascript method are triggered.
  • 15. COMMAND PROCESSING 1. The SetPipeline command is processed and just set a pipeline id to the curent pipeline to be able to retrieve it later. 2. The ShowModalDialog command display the Dialog. 3. The process is suspend so the last command is not triggered.
  • 16. When you click on the select button of the dialog, the javascript will call the resume() method. This resume method will call the latest command before the suspend. In our case, it will call the ShowModalDialog command again.
  • 17. For this second call to the ShowModalDialog command, the process will be almost the same: 1. Call the WebRibbon.aspx 2. Call the base class (13). But, this time, this.Isresult is true so the method called is the this.ResumePipeline()
  • 18. REMARKS ABOUT THE STORAGE OF THOSE PIPELINE ON THE SERVER SIDE • The pipeline ID who have perform the request is stored into Sitecore.Context.ClientPage.ClientRequest.Pipeline (ShortID format) • The suspended pipelines are stored into the user session accessible with WebUtil.GetSessionValue("SC_SUSPENDED_PIPELINES") • The pipelines commands for the current pipelines are visible in debug in Sitecore.Context.ClientPage._pipelines but this is a private variable.
  • 19. BACK IN THE RUN METHOD OF THE COMMAND This time args.IsPostBack is true and args.HasResult is true but AddRendering.IsSelectedDatasou rceDialogPostBack(args) is false because you didn't have select the datasource yet. So the code in (15) is executed.
  • 20. 1. The WebRibbon.aspx return a new pipeline in Json with a new ID 2. The process() method will process the different commands and suspend after the ShowModalDialog 3. When you will select the datasource the JS resume method will relaunch the ShowModalDialog 4. The Run() method is called again. You should have understood the process and it is the same for the subdialog where you select the datasource. So I will go faster :-)
  • 21. This time the AddRendering.IsSelectedDatasou rceDialogPostBack(args) is true. So it will register an Eval command in the returned pipeline.
  • 22. Here the kind of Json returned by this pipeline Of course this pipeline will be executed and process the commands. The Eval command will have the parameter chrome:placeholder:c ontroladded This message will be handled by the handleMessage() method in the PlaceholderChromeType.js to add this rendering in the page.
  • 23. And.... "Ouf" that is it. I hope that you have now a view on the ways Sitecore work on the client side If you have questions about this, please let a message on this blog post and I will try to reply as best as I can.