Progress releases new versions of Sitefinity CMS a few times a year. Newer versions could be hotfixes, bug fixes, new features, and/or security improvements. To take advantages of new versions, an upgrade is usually required. There are misconceptions that an upgrade is just uploading the new Sitefinity license, but that is not the case. Upgrading involves updating the newer versions of the Sitefinity libraries, configurations, and database. Following a specific process helps the upgrade to be more predictable and successful. Sitefinity provides extensive documentation on Upgrade procedures and also Knowledgebase articles describing troubleshooting techniques for many upgrade problems.
Preparing for an upgrade:
Each website is unique; some have customizations and some are basic. Newer versions of Sitefinity often come with API changes. For example, Sitefinity 8.1 had changes to the MVC namespace - Telerik.Sitefinity.Mvc - we need to make sure to remove Telerik.Sitefinity.UI.Mvc.dll. Sitefinity 10.0 has major changes to authentication, social media buttons were deprecated in Sitefinity 11.1. There were changes to Workflow module and Content Editing extensions in Sitefinity 11.1. Any customizations done to these will require code fixes, since Sitefinity does not automatically upgrade the custom code. All the API changes and Database changes are well documented here. Note that when upgrading from one version to another, all API changes of each version in between are applied as well.
When upgrading Sitefinity, you should also upgrade the corresponding Microsoft .NET framework version, based on version compatibility that is provided in Sitefinity documentation. For example, Sitefinity 11.0 requires .NET framework version 4.7.1
Performing the upgrade:
Sitefinity provides extensive documentation for the upgrade and it’s updated with each new version. In addition, there are Knowledgebase articles that address the common issues and errors we face during the upgrade process to help resolve those issues. If the site doesn’t use Nuget packages, Sitefinity Project Manager Tool is used for upgrading. The tool provides a ‘one-click’ upgrade that does the following:
Gets new DLLs
Updates web references
It is helpful to document the upgrade process, especially since it is sometimes required to repeat the upgrade if there are any issues with the process.
Post upgrade testing:
Post upgrade testing is important to make sure no existing functionality is broken. It is best to identify the key functionalities of the website and test after the upgrade. It is always helpful to maintain a copy of the older version, with which the upgraded site can be compared with to identify if an issue existed before the upgrade or is it a post upgrade issue. Maintaining a list of Regression test cases will be helpful for any ongoing and future upgrades.
Upgrading a live site:
In some cases, upgrades may involve site downtime, so it’s important to notify the stakeholders about the site unavailability during the upgrade. To minimize downtimes, the upgrade can be done on the backup of the site and after the upgrade is complete, the domain can be switched to the upgraded site. This way there is no downtime. This method is helpful if the website doesn’t collect form data, or if there is no user registration. Even on the sites with member logins and registration, instead of bringing the entire site down, those pages with the login widget can show the maintenance screen, so the other parts of the site are still functional. If downtime is unavoidable, a maintenance page may be put up, and in such cases an upgrade should be done during off hours. There are additional techniques to be followed if the website is hosted on multiple servers or on cloud providers like AWS and Azure or if there is a continuous delivery process in place.
The Sitefinity team at Americaneagle.com has experience in successfully implementing hundreds of upgrades, ranging from small sites to large enterprise sites – feel free to contact us if you need help!Contact Us Today!