Don’t get me wrong - Umbraco 7 is reaching its end-of-life so moving to the latest version is essential if you don’t want to miss out on security updates and bug fixes, or if you’re planning to extend your website in the near future.
I chose the verb carefully, though: “Moving”. Why? I’ll explain below.
But I want to upgrade my v7 website to v10 / v11!
Contrary to what you will hear from those trying to convince you that “upgrading” your Umbraco website from v7 to the latest versions is a relatively simple process, it really isn’t. Most times, at least.
If we’re talking about vanilla websites with no installed packages or custom code, then the process might indeed be (relatively) simple. We are mainly talking about content and document / data types here, so all you have to do is what you always did: Upgrade to the latest v7 version, then upgrade to the first v8 version, then upgrade to the latest v8 version and so on, letting Umbraco perform the required database modifications each time the installer runs.
And then you repeat the process for v9/v10/v11, right?
But wait a moment, what’s that on the official Umbraco documentation?
“There is no direct upgrade path from Umbraco 7 to Umbraco 8, but it is possible to migrate content from Umbraco 7 sites to Umbraco 8 sites. ”
“There is no direct upgrade path from Umbraco 8 to Umbraco 9, but it is possible to migrate from Umbraco 8 sites to Umbraco 9 sites.”
So here’s the first obstacle. Umbraco actually advises that you take your old database, restore it over the new one, and let the CMS do its thing.That may work - in some cases, but not in every case. There have been breaking changes even between v7 versions (with the most notorious being moving to v7.6 onwards) and most likely you’ll end up with some obsolete stuff - mainly Umbraco data types such as old versions of the Media Picker - which will may still be there for backwards compatibility purposes but you’ll have no guarantee as to how long they will be active.
After that, you’ll have to consider changes in your code - even if you’re only using templates and partial views with no other custom code. While Umbraco v8 is still based on .NET Framework, Umbraco v9, v10 and v11 are based on .NET5, .NET6 and NET7 respectively (formerly called .NET Core). While the names are similar, the underlying technologies differ by a great deal. Together with the technology shift come changes in crucial components used by the CMS. To name a couple, ClientDependency has been replaced with Smidge, and ImageProcessor has been replaced with ImageSharp.
These changes, together with changes made on the underlying technology, may require additional effort to adapt existing code.
For example, controller actions are not a thing any more - hello View Components. If you’re using child actions anywhere in your setup, you’ll have to rewrite them as view components. Using Client Dependency? All assets should now be loaded via Smidge. And so on.
As if that’s not enough, if you’re using community or commercial packages that have not been yet released for v9/v10/v11, you’ll have a very hard time replacing their functionality with either custom code or an alternative package.
So if I can’t really upgrade, what are my options?
So upgrading is not as easy as you may have thought. What do you do?
Well, there’s really only one option that can help you move forward - redevelopment.
In simple terms, you will have to start a new project from scratch, adapt everything (like code and views), and then migrate your content from the older version to the new one, either manually or with the help of tools like uSync.
This is not as easy as it sounds, won’t be done overnight, and it may cost you quite a bit of money - depending on how complex your old web site was. But it’s the only safe “upgrade” path there is at the moment.
And with that, comes the next obvious question:
Should I really “upgrade” my v7 website?
We get this question a lot lately. The answer, honestly, is not always “yes” as you would expect.
If we go by the book here, then you probably understand the risks of keeping a legacy application that is (or will soon be) most definitely prone to both functionality and security issues.
But there’s another reason that would make you want to move to a most recent version: Developer availability and cost.
If you are thinking about improving or extending functionality on your web site regularly, the bad news is you’ll be finding less and less help which will also be getting more expensive as time goes on. Nobody wants to mess with legacy systems, and websites on older CMSs are no exception.
What is the risk if I postpone it for some time?
Let’s assume you don’t need any modifications for now, and you’re not willing or able to spend the money required for moving to a new Umbraco version.
Contrary to what sales people will tell you, the truth is you may (stress on “may”) be okay for an additional period of time. Umbraco has always been very secure and it’s not a very popular target for hackers / exploits, so you probably won’t have serious problems on the security front.
Have in mind though that although the chance of a problem is small, it’s never zero and since v7 will go out of support in some time, a newly discovered vulnerability may put your site in immediate danger.
On the other hand, if your website is not just a “brochure” website but has advanced functionality tied to marketing or other activities as well as integrations with third party systems, then you should consider moving to a current, supported Umbraco version as soon as possible. Not just for security reasons, but to preserve the ability to have developers improve its functionality when needed.
Developers go with the latest technologies and dealing with legacy technologies can prove very limiting and expensive, as mentioned earlier in this post.
What will it cost?
Hard to say, but redeveloping a website and migrating its existing content is no easy task .If you keep thinking about it as an “upgrade”, you’ll probably find any price too steep. But if you think about it as a migration to a newer platform and technology, the cost sounds justified.
I'll be totally honest - we’ve seen cases where the cost of the whole process surpasses the original website’s construction cost, but usually this regards smaller websites that were created long ago. In most cases it’ll be a costly, but required move in order to keep your website up to date and secure, and take advantage of new features as they become available.
Our opinion here at DotSee is that you can combine this with a facelift and / or new functionality, so that you can hit two birds with one stone. Nobody wants to spend their money on something that won’t have any visible results, so you could make it part of a somewhat larger project that will bring a fresh perspective.