Optimizely Content Management System (CMS 12) was built to support ASP.NET Core and higher and is very similar to CMS 11 to make upgrading as simple as possible. Upgrading to CMS 12 does not require a data migration, and most packages and APIs are identical, so you could upgrade from the NuGet Package Manager.
ASP.NET Core is different from .NET 4 in significant ways - including how configuration works, serialization, dependency injection, logging, and other important differences - so before you upgrade, see Why upgrade to CMS 12? and related topics. See also Upgrading to ASP.NET Core and About .NET
At a high level, the migration has three main phases:
Run the Upgrade Assistant.
dotnet tool install -g upgrade-assistant upgrade-assistant upgrade [projectName].csproj
Fix code issues.
The Upgrade assistant takes care of a lot of basic issues, but usually leaves you with several remaining issues depending on the codebase. Fixing remaining code issues might be trivial or it might not. For example, you may have dependencies on other .NET 4 components that do not support ASP.NET Core, in which case you need to find replacements or live without those components. You may have a lot of .NET 4 code of your own to upgrade which the Upgrade assistant cannot help you with. You may depend on deprecated Optimizely packages.
The Breaking changes in CMS 12 can help you figure out where you may need to do some work. You could also run the Upgrade assistant to see what you are left with.
After the codebase is upgraded to ASP.NET Core, and everything works locally, DXP customers will need to migrate their service environment to the latest version using the migration tool that is available in the portal.
Updated 7 months ago