Upgrade Litium Accelerator

Upgrading an Accelerator is not like upgrading the Litium platform. Depending on how the solution is built and whether new functionality is added or supposed to be added, the approaches will be different.

When upgrading or adding functionality from a new version of Litium Accelerator to a project built on an older version, there are a number of things to consider. We have gathered some important issues and a step-by-step approach on how to go about when upgrading an Accelerator.

1. Collect solution facts

It is very important to gather all possible facts regarding the existing solution. The implementation partner responsible for the solution is in this case the best source of information. There are a number of questions that that can be addressed:

  • Which Accelerator version was the solution built upon?
  • Is the older Accelerator version built using a responsive framework?
  • To what extent is the default functionality kept from the default Accelerator?
  • To what extent has new functionality been added?
  • Are there many web sites in the installation?
  • If there are many web sites in the installation, do they share the same framework (masterpage)?
  • To what extent do you wish to use the new functionality in the Accelerator version that you are upgrading to?
  • Which add-ons are in use? The Accelerator comes prepared for use with certain Litium add-ons.

1.1   Main functional areas

Some main functional areas can be addressed to get the whole the picture. How does the framework, navigation and filter work on the current version? For example navigation is a functional area that stretches across the whole site, and if changed, some extra care has to be taken for different levels in the product structure etc.

1.2   List of page types

After looking at the framework and navigation, it is a good idea to make a list of all the page types in use. Then compare them with the functionality in the version you are upgrading to and try to see how much of the functionality that differs from the default Accelerator. Also whether there are possible changes that you want to keep.

2. Map the facts

After collecting as much information as possible about the existing solution, this should be mapped to the customers future plans. What plans are there from the customers perspective for the site?

For example:

  • Is there a redesign planned in the near future?
  • Are major changes or big new functionality planned?
  • Is there a need for a technical clean out?

3. Choose approach

Depending on the answers you find, you will basically have two choices: either you merge new functions into the existing solution, or you build a new project from scratch on the new version and add the function from the old solution that you want to keep. 

3.1   When to build from scratch

A simplified example: the customer has a solution where not much new functionality was added from the original Accelerator. The customer would like to take advantage of the new framework and navigation in a newer Accelerator version, which in this case differed a lot from the old framework. Additionally the customer has big plans and wants to do a total redesign. In this case the answer might be that it is easier to build on a new Accelerator code base.

3.2   How to merge new functions into an existing Accelerator solution

If you want to merge functions into an existing Accelerator solution the practical technical work process would look like this:

  1. Copy the files needed from the new Accelerator.
  2. When pasting the files into the existing solution make sure you do not replace files you want to keep.
  3. Modify templates so that they make use of the newly added code.
  4. Test your solution and make sure the functionality does not affect other areas of the site in a way you do not wish.

4. Running web forms Accelerator on Litium 5 or Litium 6?

No problem. Both Litium 5 and Litium 6 have full support for web forms.

5. Having different Accelerator versions in the same installation

For some reason you might want to upgrade only one of many sites in an installation, leaving the other sites at an older version. This is possible but requires some extra steps, where you need to  modify the namespace and folders. The steps are described below.

  1. Setup a new Visual Studio installation with Litium Studio and Litium Accelerator following the installation instructions. Don’t start the IIS application to avoid multiple page type creation.
  2. Build the solution and correct any build errors.
  3. Rename the class library assembly names and namespace; Litium.Studio.Accelerator, Litium.Studio.Accelerator.B2B and/or Litium.Studio.Accelerator.B2C to something unique, example replace the “Accelerator” to “Accelerator4”. Update all references to the new
  4. Remove any old output class libraries from the web site bin folder; Litium.Studio.Accelerator.dll, Litium.Studio.Accelerator.B2B.dll and/or Litium.Studio.Accelerator.B2C.dll
  5. Build the solution and correct any build errors.
  6. Inside the web site folder Site/CMS/[Ajax],[Panels],[Templates] and Site/ProductCatalog/Templates create a new folder for the Accelerator version; for example “Accelerator4”, and move all the files and folder in the current folder into the newly created folder.
  7. Build the solution and correct any build errors. There are likely a lot of file-paths referenced between the files that need to be updated.
  8. Update the definition files in the class libraries folder “Definition” to include the correct path to the templates. Also change all page type names to include a unique identifier, for example append “(4)” to the end of the name.
  9. Update the page not found and error page resolver to also look for the renamed "error" and "page not found" page types.
  10. Update gruntfile.js with the correct path for sass and JavaScript files.
  11. Update the references in the framework to insert stylesheet and JavaScript.
  12. Update all paths inside the stylesheet and JavaScript files to point to the moved files instead of the original location.
  13. Build the solution and correct any build errors.
  14. Remove all controls with the prefix “site” from web.config section: system.web/pages/controls.
  15. Build the solution. On each page that got build error a reference to the missing assembly needs to be done.
  16. Open your back office site in the browser.
  17. In the Web Publishing control panel: ensure that all page types are added with the renamed prefix and then create a new website.
  18. Manually create the site structure to test that all templates are working and the layout is intact. The structure should be equal to the site at demo.litium.se.
  19. Correct all misbehaviors.

Now the Accelerator is ready to be copied into your solution with the current site for the project. The project must have been upgraded to the corresponding Litium Studio version to the Accelerator that should be installed. Before starting, make a backup of all files.

  1. Open the current site project in Visual Studio.
  2. Build the solution and ensure no build errors exist. If any build errors occur they need to be corrected before continuing.
  3. Add the class libraries that you prepared in step 3 above.
  4. Build the solution and correct any build errors.
  5. Copy all the Site and UI folders that you prepared in step 6 and 11 above, into the website. For each file that conflicts, note the name and add the new file. For each file that conflicts a manual inspection needs to be done to correct the file; either move it to the new location and copy back the file from backup or merge them together.
  6. Build the solution and correct any build errors.
  7. If the old site contains pages not found by the error page resolver, merge that code together with the resolvers in the new Accelerator class library, only one resolver can be used.
  8. Open your back office site in the browser.
  9. In the Web Publishing control panel: ensure that all page types are added with the renamed prefix and create a new website.
  10. Manually create the site structure for the new Accelerator website, the structure should be equal to the one at demo.litium.se. Remember to use the renamed templates instead of the templates with the original name.
  11. Correct all misbehaviors.