Umbraco 10 is one of the most major updates to Umbraco in recent years. It offers a large performance boost and improves the already great security. With plenty of testing in the wild and the imminent end of support for Version 7, now is almost certainly the right time to migrate to Umbraco 10.
The final cut-off for Umbraco 7 support is September 2023. Beyond this point you will stop receiving the necessary security updates. If for no other reason, you should upgrade by September to ensure your properties stay secure!
We’ve written quite a bit about upgrading Umbraco 10 from a non-technical perspective. Here we dive a bit deeper into the specifics to consider.
Can I upgrade straight from 7 to 10?
The first thing to note is that it’s not possible to jump from Version 7 to Version 9+ in one step. This is a process that requires a few steps. It’s a process we’ve very familiar with, so please get in touch to see if we can help!
In a nutshell, the steps are as follows:
1. Umbraco V7.x to Umbraco V7.14+
Before migrating to Umbraco V8, your site must be on Umbraco V7.14 as a minimum. This is because the earlier database schema is not compatible with V8. So if your site is not already on 7.14, you must do this first.
2. Umbraco V7 to Umbraco V8
It’s soon time to migrate your content, but firstly, Umbraco must be upgraded to V8.18 to allow the final migration to V10. This is again related to the database schema, which is not compatible between V7 and V10.
To do this, we must migrate your content to V8.5, and then from V8.5 to V8.18. This step is necessary as going any higher than 8.5 may cause issues further down the line regarding your data migrations.
We also migrate Umbraco Forms to the database at the same time (if in use). We must do so because Version 9+ has no way to store forms on the file system. Therefore, this must be done in version 8.18.
Now on to V10!
3. Umbraco V8 to Umbraco V10
This part of the process is quite involved. The content of your site will now be in a database that is compatible with Umbraco V10, however, none of your templates, back-end code, or packages will have been updated. In fact, you will have a default Umbraco installation with no packages and no code at all other than what comes as standard!
At this point, all your code must be rewritten. Since Umbraco 10 uses .NET 6, this requires some real attention to detail (since .NET 6 is very different from .NET Framework).
Depending on the size and complexity of your site, this will be the largest part of the process. All code must be rewritten and tested, and all packages must be upgraded to the versions that are compatible with Version 10 (where they exist).
We’ve supported and ran this process several times. We have particular expertise in managing complex integrations without inflicting downtime on your web properties. We’d of course be happy to discuss more!
In addition to the steps above, there are some specific areas that should be on your radar throughout:
Is content treated the same in Umbraco 10?
Nested Content allows you to create complex and hierarchical data structures. It enables you to create a collection of related content items, such as a list of items, a set of questions and answers, or a table of data.
Nested Content is treated differently in Umbraco 8+; items that can be created in Nested Content cannot also be created in the tree. When upgrading from version 7 to 8 (prior to migrating content), it’s important to ascertain whether you are using any items in Nested Content as well as in the content tree.
From a technical perspective, you must firstly identify whether any items used in Nested Content can be created in the tree (I.e. have permissions that allow creation of such an object below a node in the content tree). If the answer is no, you’re good to go! If the answer is yes, you’ll need to carry out a pre-migration audit. Please get in touch to discuss how we can help you with this.
Does Umbraco 10 use the same source code?
Unfortunately, all source code needs to be re-written in Umbraco 10. Therefore, it’s essential you fully understand the source code before any upgrade step.
With the upgrade from Umbraco Version 8 to Umbraco Version 10, the source code must be completely re-written (however the content now stays the same). In an ideal world, we’d use the full, up-to-date technical specifications that would outline:
- Class diagrams
- Sequence Diagrams
- Activity Diagrams
- Interaction Diagrams (particularly to external systems)
Rarely are we in an ideal world! - therefore a full audit of the source code is required. We’ve built an entire product, Codiance Discover, that tackles this challenge. Please get in touch if you’d like to see how we can help here.
When moving to Version 10, we finally make the switch to .NET 6. There are great performance improvements here including the default use of asynchronous processes for functionality such as view rendering. However, you must first ensure that all packages you want to use are available for Umbraco 10/.NET 6 to avoid regressing functionality. You cannot use a package built for .NET Framework in .NET 6 except under extremely narrow circumstances.
Can I use the same external packages?
Where packages are used, they must be upgraded to the latest version which supports the required version of Umbraco
The first thing you’ll need to make sure when upgrading your packages is that they are compatible with the new version. You can do this by checking the package's compatibility with Umbraco 10 at Umbraco.com. If the package is compatible, you can simply upgrade it by downloading the latest version and installing it in your Umbraco project.
However, in the unlikely event the package isn’t available, we have built several for clients including the University Of Bedfordshire. Please get in touch to discuss!
What comes after Umbraco Version 10?
Umbraco 10 is also the most current version that gains long term support. The next will be Version 13. From Umbraco Version 10 onwards, we expect the upgrade path to be simpler and smaller. The alignment with Microsoft. NET release schedule plays a big part in this.
From V12 to V13, the content will be identical, however custom extensions may need to be rewritten. All things worth bearing in mind whilst you plan the next few years of upgrades.
As we said, this can be a pretty-involved process. Although there’s a lot of detail here, we hope the deeper dive into some of the technical considerations has been useful. If you’d like to discuss the needs of your specific Umbraco instance, please get in touch for a friendly, no obligation discussion!