HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Initialization

This topic describes the initialization system used by Optimizely Content Cloud (CMS) and Optimizely Commerce Cloud, and third-party and customized modules that are used with Optimizely products.

You can develop your own initialization module, see Initialization.

How it works

The initialization system consists of the following:

  • A discovery mechanism to determine which modules should be part of the initialization process.
  • A dependency sorting algorithm that decides the order of execution.
  • An execution engine that executes the modules.
  • Handling of re-execution of initialization modules (by hooking into ASP.NET) in the occurrence of exceptions during startup.
  • The EPiServer.Framework.Initialization namespace, which resides in the assembly EPiServer.Framework.

Sample initialization module

The following sample initialization module takes a dependency to the EPiServer.Commerce.Initialization.InitializationModule and registers catalog content routes.

using System.Web.Routing;
using EPiServer.Framework;
using EPiServer.Commerce.Routing;
using EPiServer.Framework.Initialization;

namespace CodeSamples.EPiServer.Commerce.Catalog
  {
    [ModuleDependency(typeof(global::EPiServer.Commerce.Initialization.InitializationModule))]
    public class RegisterRoutingModuleSample : IInitializableModule
      {
        public void Initialize(InitializationEngine context)
          {
            MapRoutes(RouteTable.Routes);
          }
        private static void MapRoutes(RouteCollection routes)
          {
            CatalogRouteHelper.MapDefaultHierarchialRouter(routes, true);
          }
        public void Uninitialize(InitializationEngine context) { /*uninitialize*/}
        public void Preload(string[] parameters) { }
      }
  }

What’s Next
Did this page help you?