Table of Contents

Upgrading from DW9 to DW10

How to upgrade from Dynamicweb 9 to DynamicWeb 10

DynamicWeb 10 features many major upgrades and changes, which will provide for a very flexible and maintainable platform for the years to come. Despite being a major upgrade, there remain numerous similarities with DynamicWeb 9, and in many cases it will be our recommendation to upgrade to DynamicWeb 10.

At a glance, DynamicWeb 9 and DynamicWeb 10:

  • Share the same code base
  • Share the same features
  • Share the same database
  • Have different backend UI
  • Have different .NET Runtime versions

DynamicWeb 10 is a technology upgrade moving from .NET framework 4 to .NET Core (.NET 8), which in itself means many changes.

Additionally, DynamicWeb 10 has a completely new UI. The new UI is very different from DynamicWeb 9, but shares the same concepts as you know them.

While many features remain the same, some features has also been deprecated in DynamicWeb 10, especially in case of legacy features or where new technology has taken over, providing new ways of implementations.

Platform Compatibility

Whether a direct upgrade to DynamicWeb 10 is feasible depends on several cases, especially what versions you are currently running.

Application Version Upgradable Recommendation
DynamicWeb 9.17+ Use Upgrade Path
DynamicWeb 9.x-16 🚫 Can be upgraded to 9.18 to enable DynamicWeb 10 upgrade
DynamicWeb 8.x 🚫 Not compatible.
Swift 1.25+ Already compatible with DynamicWeb 10
Swift 1.x-24 Use Upgrade Path
Rapido x 🚫 Not compatible. Move to Swift.

In cases, where your current platform falls in the Upgradable categories (or can become so, i.e. by upgrading to latest DW 9.x) we recommend following the Upgrade Path. In other cases, there is no direct upgrade path. In these instances, we recommend starting with a new solution if there is new for new functionality.

Upgrade Path

The Upgrade Path is a high-level path, that cuts a DynamicWeb upgrade in to smaller steps, while focusing on making as few changes to the solution as possible. Additionally on doing a couple of smaller deployments to avoid a Big Bang deployment.

In general terms, the Upgrade Path follows a simple process:

  1. Upgrade Preparations: DW9 and Swift upgrades
  2. The Platform Upgrade. Moving to DW10

Upgrade Preparations

flowchart LR
    A[Upgrade Preparations]
    A --> B{DynamicWeb 9.x version?}
    B --> |9.x-16| C[Upgrade to 9.18]
    B --> |9.17+| D{Swift Version?}
    C --> D
    D --> |1.25+| E[Ready for upgrade]
    D --> |1.x-24| F[Upgrade Swift to 1.26]
    F --> E

Platform Upgrade

flowchart TD
    subgraph Setup
        direction LR
        A["Copy Database"] 
        A --> B["Create new DW10 Dotnet project"] 
        B --> C["Copy /Files to new project"]
    end
    Setup --> Migration

    subgraph Migration
        direction LR
        D["Migrate backend code to new project"] 
        D --> E["Run DW10 project"]
    end
    Migration --> Finalize

    subgraph Finalize
        direction LR
        F["Build Indices"] 
        F --> G["Setup Permissions"] 
        G --> H["Regression Testing"]
    end
Note

For an in-depth description of the Upgrade Path, you can read more on the Upgrade Path page

Breaking Changes

There are numerous breaking changes from DynamicWeb 9 to DynamicWeb 10. A major part of them lies in the runtime change from .NET Framework to .NET Core (NET8).

Area Description Solution
.NET Changed from .NET Framework to .NET8 Change .NET Framework specific code, for instance code using System.Web, migrate controllers, etc.
Razor Razor syntax changes from ASP.NET to ASP.NET Core Migrate code, for instance @helpers are out
Note

For strategies and migrations related to custom code (i.e. in .cs or .cshtml files) please refer to official Microsoft Documentation

Most other breaking changes will be in relation to deprecations or changes in the DynamicWeb backend APIs.

Major Changes

Some features have undergone large changes. Among the areas that have undergone larger changes moving from DynamicWeb 9 to DynamicWeb 10 are these:

  • Users & Groups
    • Refactored, database schema changes for 'relations'
  • Authentication
    • Auth changed to modern practices
  • Permissions
    • Permission system rebuilt
  • Files & Database
    • Code moved into different packages
  • Products
    • Centralized all handling in one section
  • Data Models (PIM)
    • Products can now belong to multiple product categories (and inherit their attributes)
Note

For a deeper look into the changes go to the major changes page

Deprecations

As part of the natural component lifecycle, some features and providers have been deprecated from DynamicWeb 9 to DynamicWeb 10. In most cases, deprecations happen because of features having grown stale or remain unused over the years. In other cases, features have been deprecated due to technological concerns.

Tip

Most deprecations have been given [Obsolete] flag in the latest DynamicWeb 9 versions. If you're migrating custom code, for instance, this means you can use the compiler to provide you with a list of features that need to be changed.

To top