HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

API replacement map

Quick-reference tables mapping CMS 12 types, methods, events, and namespaces to their CMS 13 replacements.

This article provides a quick-reference map of API replacements when upgrading from CMS 12 to CMS 13. Use it alongside the detailed breaking changes articles to locate the CMS 13 equivalent for each deprecated or removed API.

Type replacements

CMS 12CMS 13Notes
PageReferenceContentReferenceThroughout all usages
BlockTypeRepositoryIContentTypeRepositoryNon-generic
PageTypeRepositoryIContentTypeRepositoryNon-generic
IContentTypeRepository<T>IContentTypeRepositoryNon-generic
ContentCoreDataContentNodeDirect replacement
IContentCoreDataLoaderIContentNodeLoaderDirect replacement
IContentGroupIPersonalizedGroupDirect replacement
ISecuredFragmentMarkupGeneratorIPersonalizedFragmentMarkupGeneratorDirect replacement
IRoleSecurityDescriptorIEnumerable<string>For role identities
DynamicProperty(removed)Feature removed entirely
PlugInAttribute(removed)Plugin system removed
ScheduledPlugInAttributeScheduledJobAttributeFrom EPiServer.Scheduler
DojoWidgetAttributeCriterionPropertyEditorVisitor group criteria
ISiteDefinitionResolverIApplicationResolverApplication model
ISiteDefinitionRepositoryIApplicationRepositoryApplication model
SiteDefinitionApplicationType name only. SiteDefinition.Current requires DI refactoring.
VirtualPathResolverVirtualPathUtilityExPublic static class; same namespace EPiServer.Web

Method and property replacements

CMS 12CMS 13Notes
ContentArea.FilteredItemsContentArea.ItemsOr use IContentAreaItemsRenderingFilter
IContentAreaLoader.Get()IContentAreaLoader.LoadContent()Direct replacement
XhtmlString.ToHtmlString(IPrincipal)XhtmlString.ToHtmlString()Parameter removed
PropertyString.PublicStringPropertyString.StringNow public
PropertyLongString.PublicLongStringPropertyLongString.LongStringNow public
PropertyUrl.StringPropertyUrl.LongStringBase class changed
PropertyDefinition.SearchablePropertyDefinition.IndexingTypeDirect replacement
PropertyData.Clear() (override)PropertyData.ClearImplementation()Direct replacement
PrincipalInfo.HasEditAccess()user.IsInRole(Roles.CmsEditors)Direct replacement
PrincipalInfo.IsPermitted()PermissionService.IsPermitted()Direct replacement
SoftLink.LinkStatusSoftLink.HttpStatusCodeDirect replacement
SaveAction.NoneSaveAction.DefaultDirect replacement
SaveAction.DelayedPublishSaveAction.ScheduleDirect replacement
RenderSettings.CustomTagRenderSettings.CustomTagNameDirect replacement
RenderSettings.ChildrenCustomTagRenderSettings.ChildrenCustomTagNameDirect replacement
VirtualPathResolver.Instance.Method()VirtualPathUtilityEx.Method()Static class, no .Instance
SiteDefinition.Current.StartPageIApplicationResolver.GetByContext()?.EntryPointInject IApplicationResolver and call GetByContext() for IRoutableApplication
SiteDefinition.Current.RootPageContentReference.RootPageDirect replacement
UIPathResolver.InstanceInject UIPathResolverUse service container
ConstructorParameterResolver.InstanceInject from service containerUse service container
PropertyData.LocateInject services via constructor
Html.CreatePlatformNavigationMenu()<platform-navigation />Tag helper

Event replacements

CMS 12CMS 13
IContentRouteEvents.CreatingVirtualPathIContentUrlGeneratorEvents.GeneratingUrl
IContentRouteEvents.CreatedVirtualPathIContentUrlGeneratorEvents.GeneratedUrl
IContentRouteEvents.RoutingContentIContentUrlResolverEvents.ResolvingUrl
IContentRouteEvents.RoutedContentIContentUrlResolverEvents.ResolvedUrl

Namespace migrations

CMS 12 NamespaceCMS 13 NamespaceAffected Methods
Microsoft.Extensions.DependencyInjectionEPiServer.DependencyInjectionAddCmsCore(), AddCmsData(), AddCmsFramework(), AddTinyMce(), AddAdmin(), AddCmsUI(), AddCmsShell(), AddCmsShellUI(), AddCmsBlobs(), AddCmsCache(), AddCmsGeolocation(), AddCmsChangeNotification(), AddCmsLinkAnalyzer()

Extracted packages

The following packages require an explicit PackageReference in CMS 13. They were transitive dependencies in CMS 12.

Namespace in CodeRequired PackageNotes
EPiServer.Cms.UI.AspNetIdentityEPiServer.CMS.UI.AspNetIdentityWas transitive in CMS 12
EPiServer.Cms.UI.VisitorGroupsEPiServer.CMS.UI.VisitorGroupsNo longer included by EPiServer.Cms metapackage. Call AddVisitorGroupsMvc() and AddVisitorGroupsUI().
EPiServer.PersonalizationEPiServer.GeolocationCall AddCmsGeolocation()
EPiServer.Events.ChangeNotificationEPiServer.Events.ChangeNotificationCall AddCmsChangeNotification()
EPiServer.Framework.BlobsEPiServer.BlobsCall AddCmsBlobs()
EPiServer.Framework.CacheEPiServer.CacheCall AddCmsCache()

Removed APIs

The following APIs are removed in CMS 13 with no direct replacement.

CMS 12Notes
EPiServer.Shell.Telemetry and TelemetryOptionsEntirely removed in CMS 13
SearchProvidersManagerMade internal
SiteDefinition.Current.StartPageStatic singleton removed. Inject IApplicationResolver via constructor, call GetByContext() for IRoutableApplication, and use .EntryPoint.