How should I upgrade Kentico Xperience?

Xperience by Kentico, their flagship DXP, is currently at version 13, with a long roadmap ahead. Over the years, the underlying technology and feature set have changed and will continue to do so. How can you get the best return on your investment in the Xperience platform, considering where you are on its roadmap?

Andy Thompson pulling a funny face

By Andy Thompson, 9 minute read

You don't just use a Digital Experience Platform (or DXP) like Xperience as a tool to build your website. You invest in the platform based on its extremely broad feature set, and trust in its roadmap to support your digital marketing needs for years to come. As the years go by, the platform changes and evolves, and at some point you're going to need to upgrade your platform to stay supported, and to take full advantage of your investment.

But... it's been a while...

So your last upgrade was a few years ago? Don't worry, it's not just you.

Xperience customers – especially those more toward the Enterprise end of the size scale – don't typically jump at major upgrades as soon as they're available. Sometimes, it's simply a case of 'if it ain't broke don't fix it', but even if there are 'fixes' or other benefits associated with an upgrade, businesses require a return from any investment. If the costs outweigh the benefits, and staying put doesn't pose any significant risk, businesses are more likely to stay on their current version, as long as it continues to perform for minimal further investment.

Typically upgrades are triggered by one of the following:

    1. Desirable features that are worth the cost of upgrading
    2. A redesign or major functionality enhancement (or even complete rebuild) that is already going to involve significant work (effectively reducing the cost of the upgrade and getting better ROI)
    3. Falling far enough behind that the current version is no longer supported by the vendor, requiring an upgrade to a supported version to reduce risk
    4. Bug fixes or security updates, again to reduce risk, although these can often be only minor upgrades or even simple hotfixes.

Some of these reasons drive people to upgrade to the latest version, and others might only incentivise people to apply a relatively minor upgrade to get to a certain point, for example the version that introduced a critical feature, or to get onto a supported version while investing as little as possible in updating or rewriting custom code.

In a hurry? If you don't want to read my rationale, feel free to just jump straight to my advice. πŸ™‰

A moving target

This means it's not a simple case of upgrading from N-1 to N (or the second-most-recent to latest version) – it could be from a version any number of years back into Xperience's long version history, to a couple of target versions.

To complicate things, it's fair to say that some DXP upgrades are typically more straight-forward than others, whether you're dealing with Xperience or any other platform.

Some version bumps change things considerably for developers under the hood, which can create work for developers, but that might be ok if you've been following best practices (we all do, right? πŸ˜‰). The biggest factor that is likely to increase the complexity of an upgrade significantly is how much custom code there is in an implementation, and how well – or how closely to the vendor's recommended approach – that code was written.

Xperience does provide well-documented and fully-tested upgrade packages for every version from 1 right through to 13, but obviously the platform has changed considerably in that time. Some versions may also have deprecated or removed old features completely, but thankfully that's quite rare with Xperience. 

Breaking changes 😨

To complicate things further, there are multiple Microsoft frameworks and development approaches that were supported and/or recommended at various points in the platform's history (for very good reasons).

Kentico has kept up to date with Microsoft's best practices, which means transitioning over the course of over a decade, to provide support for multiple development approaches and Microsoft frameworks. These development approaches and frameworks represent industry best practices given the technology in the year that version was released, from Kentico and Microsoft respectively.

Without going into too much technical detail, I'll divide these technologies as they apply to Xperience projects into two major 'breaking changes' – or points where it's not as simple to upgrade from one to the next. To move from one of these to the other, you would need to make significant code changes.

  1. Microsoft WebForms (Kentico's Portal) to MVC
  2. Microsoft .NET Framework to .NET Core

Put simply: when version 1 launched over 15 years ago, WebForms (Portal) and the .NET Framework were state-of-the-art. Today, it's all about MVC and .NET Core (and .NET 5+).

Kentico has concurrently supported as many combinations of these as they could feasibly maintain at every point in their version history, which means a full table of supported technologies for each version might be a little complex! To simplify things, typically you will see these combinations based on what version of Xperience a customer is running:

Version<=10 (2016)11 (2017)12 (2018)13 (2020)Future
MethodPortalPortal or MVCPortal or MVCMVCMVC
.NETFrameworkFrameworkFrameworkFramework or CoreCore

As you can see, while for a few transitional years there was flexibility to provide options, there are a couple of non-negotiables in the upgrade path:

    1. From version 13 onwards, you must be using MVC
    2. To move beyond 13 onto future generations of Xperience, you must be use .NET Core

Have I hit a dead end?

No! If you're using the WebForms/Portal approach, that's extremely common for customers who have been on the platform for a few years already, and Kentico knows this well. If you're in this boat, you can upgrade to Xperience 12 Service Pack, at which point you benefit from extended Long Term Support through to end of 2023.

If you're on MVC, the news is even better. Upgrading an MVC implementation from 11 or 12 to the latest 13 should be relatively straight-forward. Once you're on 13, you're up to date, and benefit from regular (quarterly) Refreshes rather than big annual upgrades. The remaining piece of the puzzle is just to migrate the underlying framework for your public-facing website from .NET Framework to .NET Core (likely .NET 6 specifically) which is a much easier transition than moving from Portal to MVC, with most of your individual widgets and page templates requiring virtually no changes, since they're already MVC.

Upgrade or rebuild?

If you’ve invested in Xperience, the good news is upgrades are typically easier than some of its well-known competitors.

Let's say however that you're at one of these 'breaking changes' points in the version history, or you've identified that your upgrade is a complex one due to jumping several major versions, involving a lot of custom code that isn't in tip top shape. In this case, chances are your project is probably a few years old too, and you might be considering whether to go ahead with a simple upgrade, or look at a redesign and rebuild on a newer version, or even a different platform, to kill a few birds with one stone.

Many upgrades end up being at least partial rebuilds, due to overlap with design or functionality changes which triggered the upgrade decision.

Often at this point, talk of a potential 'rebuild' can evolve quickly into a discussion about a full 'replatforming'.

Even if it ends up being a full front-end redesign and/or rebuild, it's likely to be simpler (and therefore cheaper) for you to upgrade than change to a completely different platform, due to a number of factors:

  1. The fully supported upgrade path of the CMS admin (back office) and database – even if you have to rebuild the public facing website, there is always an upgrade path available for the CMS interface itself
  2. Your editors' and website administrators' existing training, experience and familiarity with the platform
  3. Your content will survive the upgrade intact, minimising the effort involved with complex data migrations from one platform to another, even if a lot of your on-page content will require re-work regardless
  4. Customisations to the CMS might need to be updated and tested for the new version, however it's likely that the effort required to do this will be significantly less than customising a new platform to meet the same requirements as before
  5. Integrations with third-party platforms such as your CRM, payment gateway, email marketing platform, or authentication provider will require much less redevelopment work, or in many cases will 'just work'
  6. Xperience 13 (the latest version) will be supported right out to 2026 with regular product refreshes rather than major annual upgrades, so it could/should be your last major upgrade for a while

What should I do?

OK enough beating around the bush, this is a tough question, but it's the one I set out to answer with this post! 

One way or another, after upgrading, typically you want:

  1. to be on a version of Xperience that is going to be supported for some time (12 SP Portal or 13 MVC), and
  2. to be on an underlying Microsoft .NET technology that Microsoft and Kentico support and recommend if possible (Core).

In my professional opinion, your best course of action is likely to depend on your answers to a couple of key questions:

  1. Are you already using MVC?
  2. Do you have 'big plans' over the next couple of years, such as major additional functionality, or a partial or complete redesign?
Xperience by Kentico upgrade path decision tree

For example

If you're on a recent version and running MVC, then the best case scenario if you can justify it is to get onto the latest version 13 and Core, then you're on the latest recommended tech from Microsoft and Kentico, sitting pretty to make the most of the platform well into the future

But it's usually not that simple. Here are a few typical scenarios:

Staying supported on Portal

Your website is doing the job pretty well, but you're on Kentico 10, which is no longer supported by Kentico, using Portal (not MVC). You don't have plans to redesign or redevelop significant portions of the site.

In this case, you probably want to simply upgrade to 12 Service Pack and enjoy Long Term Support until your situation changes enough to re-evaluate.

Keeping an old site going

You're on a version older than 10, way back to 9, or 8. Congratulations, your website has lasted much longer than most and must have been a great investment! 

You could upgrade through to 12SP, where your simple upgrade path ends (but you have long term support for a few more years). Strongly consider a rebuild however (see below), and consider whether it's time to go back to the drawing board with design too. Even if you do all of this, it's likely that staying on Xperience will provide benefits and cost savings over starting from scratch on a different platform.

Big plans

You're on an older version and have been for years, long overdue for some kind of update. You already have significant plans, and are looking at various options for the future, potentially even going through a dedicated discovery process to create a 3-5 year plan for the future.

Definitely consider staying on the Xperience platform, and migrating from wherever you're at on the roadmap to the latest version 13, MVC, Core. While it sounds like a big jump, you're probably going to be rebuilding most if not all of your public facing website regardless, and by staying on the platform you get the benefits and savings of a fully supported upgrade path for the underlying CMS your team has already invested in significantly.

None of the above

Your scenario isn't listed? Contact us to discuss it!

Considering a Kentico Xperience upgrade?

Speak to one of our Kentico Xperience experts about keeping your Kentico platform up to date.

Get in touch