Pattern for multiple renderings calling same serviceSitecore User Group April 2019 Meetup - Queen City, Manchester, NHPlaceholder settings on sub-renderingsDatabase Query for Sitecore database final renderings fieldsWhat is the recommended pattern for dynamic paragraph systems in Sitecore?Habitat - Renderings vs SublayoutsCannot setup content for same control multiple times in a page created using a template in sitecore 7.5Sitecore Renderings SortingView Renderings at run-timeGet renderings for a placholderDisplayName set to “__Standard Value” on RenderingsHow do I assign the same Conditional Rendering Rules to Multiple Components?

Different meanings of こわい

How can I prove that a state of equilibrium is unstable?

Eccentricity going to zero -- Geometric definition conic

Why did early computer designers eschew integers?

How can I deal with my CEO asking me to hire someone with a higher salary than me, a co-founder?

Is it "common practice in Fourier transform spectroscopy to multiply the measured interferogram by an apodizing function"? If so, why?

Error when overriding validators pipeline to create custom error text

Did A320 NEO need an equivalent to 737 MAX MCAS because of its bigger engines?

How to coordinate airplane tickets?

How exploitable/balanced is this homebrew spell: Spell Permanency?

What is the opposite of "eschatology"?

Why do I get "Binary file matches" with grep -I?

How to install cross-compiler on Ubuntu 18.04?

How to aggregate categorical data in R?

My singleton can be called multiple times

Processor speed limited at 0.4 Ghz

A hang glider, sudden unexpected lift to 25,000 feet altitude, what could do this?

How to keep a dark protagonist who wants to keep his humanity dark?

Avoiding the "not like other girls" trope?

Are British MPs missing the point, with these 'Indicative Votes'?

Salesman text me from his personal phone

Machine learning testing data

Does int main() need a declaration on C++?

How do conventional missiles fly?



Pattern for multiple renderings calling same service



Sitecore User Group April 2019 Meetup - Queen City, Manchester, NHPlaceholder settings on sub-renderingsDatabase Query for Sitecore database final renderings fieldsWhat is the recommended pattern for dynamic paragraph systems in Sitecore?Habitat - Renderings vs SublayoutsCannot setup content for same control multiple times in a page created using a template in sitecore 7.5Sitecore Renderings SortingView Renderings at run-timeGet renderings for a placholderDisplayName set to “__Standard Value” on RenderingsHow do I assign the same Conditional Rendering Rules to Multiple Components?










2















Scenario



A page contains several separate renderings. Each rendering displays some data which is returned from a remote service. Several of these data items come from the same remote service.



This leads to that service being requested multiple times per page load, which seems inefficient.



Separate renderings are desirable as they can be used elsewhere on the website, and provides content editors flexibility.



Solutions



Does an established pattern exist to handle this scenario in an efficient way?










share|improve this question


























    2















    Scenario



    A page contains several separate renderings. Each rendering displays some data which is returned from a remote service. Several of these data items come from the same remote service.



    This leads to that service being requested multiple times per page load, which seems inefficient.



    Separate renderings are desirable as they can be used elsewhere on the website, and provides content editors flexibility.



    Solutions



    Does an established pattern exist to handle this scenario in an efficient way?










    share|improve this question
























      2












      2








      2








      Scenario



      A page contains several separate renderings. Each rendering displays some data which is returned from a remote service. Several of these data items come from the same remote service.



      This leads to that service being requested multiple times per page load, which seems inefficient.



      Separate renderings are desirable as they can be used elsewhere on the website, and provides content editors flexibility.



      Solutions



      Does an established pattern exist to handle this scenario in an efficient way?










      share|improve this question














      Scenario



      A page contains several separate renderings. Each rendering displays some data which is returned from a remote service. Several of these data items come from the same remote service.



      This leads to that service being requested multiple times per page load, which seems inefficient.



      Separate renderings are desirable as they can be used elsewhere on the website, and provides content editors flexibility.



      Solutions



      Does an established pattern exist to handle this scenario in an efficient way?







      presentation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 3 hours ago









      SteveSteve

      1555




      1555




















          1 Answer
          1






          active

          oldest

          votes


















          4














          Register the service in your DI scoped for the request.



          When the first component calls the service, save the value in the service.



          When next component wants the same data, the service will already have it.



          I used this blog post as a guide how to:



          https://www.coreysmith.co/sitecore-dependency-injection-scoped-services/



          In shortcut - register service:



          public class ExampleConfigurator : IServicesConfigurator

          public void Configure(IServiceCollection serviceCollection)

          serviceCollection.AddScoped<IScopedService, ScopedService>();




          And the service itself:



          public class ScopedService : IScopedService

          private object _externalData;
          public object ExternalData

          get return _externalData ?? (_externalData = GetDataFromExternalProvider());




          And register the configurator:



          <configuration>
          <sitecore>
          <services>
          <configurator type= "ExampleConfigurator, MyAssembly"/>
          </services>
          </sitecore>
          <configuration>





          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "664"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f17864%2fpattern-for-multiple-renderings-calling-same-service%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            Register the service in your DI scoped for the request.



            When the first component calls the service, save the value in the service.



            When next component wants the same data, the service will already have it.



            I used this blog post as a guide how to:



            https://www.coreysmith.co/sitecore-dependency-injection-scoped-services/



            In shortcut - register service:



            public class ExampleConfigurator : IServicesConfigurator

            public void Configure(IServiceCollection serviceCollection)

            serviceCollection.AddScoped<IScopedService, ScopedService>();




            And the service itself:



            public class ScopedService : IScopedService

            private object _externalData;
            public object ExternalData

            get return _externalData ?? (_externalData = GetDataFromExternalProvider());




            And register the configurator:



            <configuration>
            <sitecore>
            <services>
            <configurator type= "ExampleConfigurator, MyAssembly"/>
            </services>
            </sitecore>
            <configuration>





            share|improve this answer





























              4














              Register the service in your DI scoped for the request.



              When the first component calls the service, save the value in the service.



              When next component wants the same data, the service will already have it.



              I used this blog post as a guide how to:



              https://www.coreysmith.co/sitecore-dependency-injection-scoped-services/



              In shortcut - register service:



              public class ExampleConfigurator : IServicesConfigurator

              public void Configure(IServiceCollection serviceCollection)

              serviceCollection.AddScoped<IScopedService, ScopedService>();




              And the service itself:



              public class ScopedService : IScopedService

              private object _externalData;
              public object ExternalData

              get return _externalData ?? (_externalData = GetDataFromExternalProvider());




              And register the configurator:



              <configuration>
              <sitecore>
              <services>
              <configurator type= "ExampleConfigurator, MyAssembly"/>
              </services>
              </sitecore>
              <configuration>





              share|improve this answer



























                4












                4








                4







                Register the service in your DI scoped for the request.



                When the first component calls the service, save the value in the service.



                When next component wants the same data, the service will already have it.



                I used this blog post as a guide how to:



                https://www.coreysmith.co/sitecore-dependency-injection-scoped-services/



                In shortcut - register service:



                public class ExampleConfigurator : IServicesConfigurator

                public void Configure(IServiceCollection serviceCollection)

                serviceCollection.AddScoped<IScopedService, ScopedService>();




                And the service itself:



                public class ScopedService : IScopedService

                private object _externalData;
                public object ExternalData

                get return _externalData ?? (_externalData = GetDataFromExternalProvider());




                And register the configurator:



                <configuration>
                <sitecore>
                <services>
                <configurator type= "ExampleConfigurator, MyAssembly"/>
                </services>
                </sitecore>
                <configuration>





                share|improve this answer















                Register the service in your DI scoped for the request.



                When the first component calls the service, save the value in the service.



                When next component wants the same data, the service will already have it.



                I used this blog post as a guide how to:



                https://www.coreysmith.co/sitecore-dependency-injection-scoped-services/



                In shortcut - register service:



                public class ExampleConfigurator : IServicesConfigurator

                public void Configure(IServiceCollection serviceCollection)

                serviceCollection.AddScoped<IScopedService, ScopedService>();




                And the service itself:



                public class ScopedService : IScopedService

                private object _externalData;
                public object ExternalData

                get return _externalData ?? (_externalData = GetDataFromExternalProvider());




                And register the configurator:



                <configuration>
                <sitecore>
                <services>
                <configurator type= "ExampleConfigurator, MyAssembly"/>
                </services>
                </sitecore>
                <configuration>






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 3 hours ago

























                answered 3 hours ago









                Marek MusielakMarek Musielak

                11.4k11136




                11.4k11136



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Sitecore Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsitecore.stackexchange.com%2fquestions%2f17864%2fpattern-for-multiple-renderings-calling-same-service%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How does Billy Russo acquire his 'Jigsaw' mask? Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Favourite questions and answers from the 1st quarter of 2019Why does Bane wear the mask?Why does Kylo Ren wear a mask?Why did Captain America remove his mask while fighting Batroc the Leaper?How did the OA acquire her wisdom?Is Billy Breckenridge gay?How does Adrian Toomes hide his earnings from the IRS?What is the state of affairs on Nootka Sound by the end of season 1?How did Tia Dalma acquire Captain Barbossa's body?How is one “Deemed Worthy”, to acquire the Greatsword “Dawn”?How did Karen acquire the handgun?

                    Личност Атрибути на личността | Литература и източници | НавигацияРаждането на личносттаредактиратередактирате

                    A sequel to Domino's tragic life Why Christmas is for Friends Cold comfort at Charles' padSad farewell for Lady JanePS Most watched News videos