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:
- Upgrade Preparations: DW9 and Swift upgrades
- 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
- For an overview of converting Swift templates to AspNetCore go to the converting templates page
- For an overview of how to migrate backend (C#) code to NET8 go to the converting .NET Customizations page
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.
- For a list of deprecated features and providers go to the deprecations page
- For a list of deprecated APIs and namespaces go to the deprecations page