Migrate a Sitefinity CMS project

Supported versions of Sitefinity CMS

A new project in Sitefinity Cloud is always provisioned with the latest officially supported Sitefinity CMS version.
Projects that have already been created in Sitefinity Cloud are subject to an upgrade cycle, so that they can benefit from the latest product functionality and security updates. For more information about upgrading a Sitefinity Cloud project, see Upgrade.

Procedure

Existing Sitefinity CMS projects, hosted on-premises can be migrated to Sitefinity Cloud. To do this, you must complete the following steps:

1. Upgrade to the latest supported version

You must first upgrade your project to the latest supported Sitefinity CMS version. 
For more information about upgrading Sitefinity CMS, see Upgrade procedure.

2. Turn on Auto storage mode for configurations

For more information, see Auto-storage mode of configurations

3. Enable Multisite

In Sitefinity Cloud, all the projects must use multisite. You must have the Multisite module activated.

NOTE: Sitefinity CMS unifies single-site and multisite modes and allows you to seamlessly manage transitions from single-site to multisite, without changes in the end-user experience.
In case you need to combine more than one Sitefinity single-site projects in one multisite project, see Migrate a single site to multisite with SiteSync

4. Migrate media libraries to Database

Sitefinity CMS supports multiple storage providers for media libraries. For more information, see Storage providers for libraries.

To move a media library to a different storage provider, perform the following:

  1. On Documents & Files page, expand the Actions button of the library that you want to move to another storage.
  2. From the dropdown box, click Library properties.
  3. The Library properties page opens.
  4. Under Storage provider, select a storage provider where you want to move the library.

    NOTE: If you are using FileSystem as a storage provider for your media libraries, change the storage provider of the library to Database.
    If you are using an external storage provider for your media libraries, optionally move the library to Database. If you intend to use external storage providers with the Sitefinity Cloud setup, leave the external storage provider as is.

  5. Click Save changes.

5. Install Sitefinity Cloud NuGet package

Install Progress.Sitefinity.Cloud NuGet package in your project.

This will automatically install all dependencies.

6. Add Azure AD authentication support

To enable integrated Azure B2B login, add the following configuration in ~/AppData/Sitefinity/Configuration/AuthenticationConfig.config:

7. Manage configurations across different environments

Your Sitefinity Cloud website is configured in a Continuous Delivery (CD) pipeline setup. This way, code changes are deployed to non-Production environments like Staging first, and then to Production. In such setup, the code base does not change, but your website configurations may need to vary to reflect different environment settings, such as connection strings and SMTP settings. To facilitate these needs, Sitefinity Cloud offers different options for managing configurations, which can be used in conjunction with one another.

For more information about using these options, see Manage the configurations.

8. Configure crawlers

  1. To prevent crawlers from crawling the site on non-Production environments, add the following to the web.config file:
  2. To enable crawlers to crawl the site on Production, add the following to the web.Production.config transformation file:

9. Configure the WebSecurity Module

Add the following configuration:

  1. In Sitefinity CMS backend, navigate to Administration » Modules & Services and enable the WebSecurity module.
  2. Ensure the following configuration is in place:
    <webSecurityConfig xmlns:config="urn:telerik:sitefinity:configuration" xmlns:type="urn:telerik:sitefinity:configuration:type">
    <redirectValidation trustedLocations="https://login.microsoftonline.com" />
    <cookiesProtector enable="False" />
    </webSecurityConfig>
  3. Ensure all the needed scripts used in your project are not blocked in the WebSecurity module configuration.

10. Verify the deployment package

In a Continuous Delivery pipeline, the package deployed to an environment is always built by the same process for each deployment. 

To check the package that will be deployed in Sitefinity Cloud, run the following MSBuild command locally, in the Developer Command prompt of Visual Studio:

C:\MySolutionFolder>msbuild MySolution.sln /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true  /p:AutoParameterizationWebConfigConnectionStrings=False /p:TransformWebConfigEnabled=False /p:MarkWebConfigAssistFilesAsExclude=false /p:PackageTempRootDir="" /p:PackageLocation="C:\BuildPackageFolder" 

NOTE: If you do not see some files in the output package, make sure the necessary files are included in your project.

11. Ensure that the project uses relative URLs

When you build a URL in your code, make sure that it uses a relative path and not an absolute one, because it may lead to rendering wrong domain on the site.

Supported Connectors and Add-ons

Sitefinity Cloud projects support all connectors and add-ons that can be purchased with Sitefinity CMS. For more information, see Sitefinity Cloud Tiers.

Was this article helpful?

Next article

Multi-region failover