One doesn't simply upgrade Sitefinity!
Software updates are now common place with your Windows machine or mobile phone hounding you every day to click "Update". Even with Windows now taking that decision out of your hands, they update automatically. This changed after security vulnerabilities have been exploited for the last 2 decades and cyber crime is only on the increase. So why do organisation ignore updating their CMS? Is it safe to run an older version of Sitefinity?
Why should you upgrade Sitefinity?
It is important to keep Sitefinity up to date for many reasons such as improved security and access to the latest features. Upgrading the CMS adds the latest security patches and security features provided by the vendor, Progress. With each update many new features are added to improve the performance and interface of the CMS and open new avenues for easily customising its look and feel. Upgrades also provide performance improvements and bug fixes which are essential in keeping a site running smoothly.
However security is the biggest win here. With the Sitefinity team investing significant time and money on developing an enterprise grade CMS, they take security very seriously. After-all, having your website data stolen or your website homepage vandalised, is not going to go down well. So yes, you should and need to upgrade!
How to Upgrade Sitefinity
So for the development teams reading, to upgrade a Sitefinity website is quite simple, we need to replace the existing Sitefinity dll files, which control how the CMS functions, with the latest version. Or is it as simple as that?
If the current version of Sitefinity is below 8.0 you need to download and use the Sitefinity project manager for the version you are upgrading the site to.
If you are upgrading from version 8.0 or higher it is best to use NuGet Packages which can be installed from the Sitefinity NuGet store. If the Telerik NuGet packages are already being used then they need to be updated to the desired/latest Sitefinity version.
If the website is starting from a version lower than 8.0 and is moving to higher than 8.0 you need to upgrade using the project manager to Sitefinity version 8.0 and then upgrade using NuGet packages to the desired/latest Sitefinity version. Click here for more information regarding this.
Usual upgrade steps:
- Get a local copy of the latest version of the project
- Get a backup of the live site to run the local site on (removing any sensitive data from the local copy in the process)
- Ensure the local site builds and runs properly
- Depending on Sitefinity version either using the Sitefinity project manager or NuGet packages to upgrade the dll files
- Ensure all the required files are updated and the web.config binding redirects have been updated (otherwise manually do so)
- Update the Sitefinity license file
- Update any custom projects that have dependencies on the Sitefinity dlls to also use these latest files
- Build and navigate to the website to start the upgrade
- If the site loads successfully start thorough testing, else investigate and debug cause of issues
- If developer testing passes, commit relevant changes and deploy to QA/UAT for further testing
- When ready for production, ensure there is an up to date backup in case the upgrade goes wrong
- Deploy to production and carry out final assurance tests
The bloody thing won't load!!
Updating the Sitefinity dll files for a website is generally not too difficult a process but can often cause unexpected problems on the site. This can be caused by many things including unwanted historic dlls still being present and needing to be removed, missing binding redirects in the web.config or custom bootstrap changes having been overwritten during the upgrade. Below are a list of other challenges faced during a Sitefinity upgrade:
- Deprecated Media file types
Older sites can often contain historic or deprecated data and functionality. For example, the Media file type was once used to store data, such as images, in Sitefinity pre version 7.0. This content type is no longer supported, post version 7.0, since the introduction of Related Media field types and as a result caused problems viewing and editing this content on the site after an upgrade. As can be seen here the resolution was found to be to add additional functionality to migrate all of this data to the new Related Media field type once the upgrade was deployed.
- Duplicated Dynamic module tables
While many issues have a known cause and can be easily resolved during the development or testing phase, some are trickier to pin down. An upgrade can lead to unexpected outcomes that are not always easy to identify. Some issues seem to be caused by a problem during the upgrade and while time can be spent trying to fix the site after the upgrade it can sometimes be useful to rollback the database and perform the upgrade again. As in this case the tables relating to dynamic content on the site were duplicated in the database causing a lot of content to go missing on the site. A decision to rollback the upgraded database with a recent backup and upgrade again from that resolved this issue.
Summary for Sitefinity upgrades
While upgrading Sitefinity can be difficult at times and cause unexpected knock on effects on the site, the benefits of improved security and the latest features make it a worthwhile process. Keeping your website looking great and running on the latest technologies shouldn't just be an option, it should be a priority. It is also important to remember that keeping the CMS version up to date with frequent upgrades reduces the risk of your upgrades being painful and time consuming. Sites that are left too long before upgrading can compound the amount of work needed to upgrade and lead to a longer list of potential problems.
Spinbox has 10 years experience with Sitefinity and we have performed 100's of security patches and upgrades. Consider it like servicing your car, it's definitely worth doing regularly and avoiding breaking down and getting a hefty bill from the garage. Speak to one of our Sitefinity consultants to find out about upgrading your Sitefinity website.