To view the complete list of changes, see the release notes feed.
Some changes are binary breaking but do not necessarily require code changes but rather just a recompilation of the project. Breaking changes are changes in method signatures or behavior of methods compared to the documented API in the previous version, which are described in this document.
In Optimizely Content Management System (CMS) version 11, some functionality, as for example TinyMCE, has been moved to separate NuGet packages. These packages have their own version number and may or may not be upgraded together with the core CMS packages.
XForms has also been moved to its own NuGet package. This means that the Forms viewer gadget, which was deprecated in CMS 10, is now also removed.
Most upgrades do not require changes to code but require a re-compilation. It is important to have the correct packages installed. A missing package causes compilation errors after upgrading a site. See New NuGet packages for which packages you need to manually add.
Separate NuGet packages for ASP.NET dependencies (CMS-8106)
- The integration with ASP.NET has moved to separate packages EPiServer.Framework.AspNet and EPiServer.Cms.AspNet.
EPiServer.MirroringService.MirroringMonitoring.MirroringMonitoringModulehas moved from EPiServer.Enterprise to EPiServer.Cms.AspNet. It must be manually changed in web.config for the mirroring module.
- Usage of StructureMap as IOC container was moved to a separate package, EPiServer.ServiceLocation.StructureMap.
- .NET Framework 4.61 is required.
- MVC 5.2.3 is required.
CreatePropertyControlhas been removed from
IPropertyControlFactoryinstead to register and create controls for
- Providers (for example
BlobProvider) no longer inherit
ProviderBase. If a provider that supports configuration through web.config has an initialization method with the signature void
Initialize(string name, NameValueCollection config), it will be called during the initialization phase
IServiceLocatorno longer supports named instances. The specific implementation in
EPiServer.ServiceLocation.StructureMapsupports named instances.
- Some methods in
IServiceLocatorhave been removed from interface and are now extension methods in
EPiServer.Search.SearchSettings.Confighas been replaced by
- It is no longer supported to get an
ILoggerinstance from IOC container.
- Calls to logger that occur before
IConfigurableModulesare created, are not guaranteed to be persisted.
- The setting for logger factories
episerver:LoggerFactoryTypemust now always be quailfied with assembly name, even for built-in logger factories.
- The method
IStringFragment.GetControlhas been removed. Use
IStringFragmentControlResolverinstead to create controls for string fragments.
- Configuration sections
SearchSectionhave been moved to assembly EPiServer.Framework.AspNet.
DataAccessBasehas been removed and is replaced by the property Executor.
PageData.LinkUrlno longer contains the query parameter
ContentProviderscan no longer use
CacheSettings.Filenames(previously obsoleted) to set up dependencies to files.
EPiServer.Web.InitializationModulehas been moved to EPiServer.Cms.AspNet assembly and can be used as dependency module for other modules that want to run after Optimizely CMS is initialized when running as a ASP.NET application. There is a new module
EPiServer. It can be used as dependency module for modules that want to run after CMS Runtime is initialized when running CMS outside ASP.NET context.
- Previously obsoleted methods Rebase/MakeRelative on type EPiServer.Web.UrlBuilder in assembly
EPiServerhave been moved to extensions method defined in assembly EPiServer.Cms.AspNet. Type
UrlBuilder.RebaseKindis also moved to
EPiServer.Web.RebaseKindin EPiServer.Cms.AspNet assembly.
AccessControlList.Savehas been deprecated and is no longer supported. Use
Manually and automatically registered templates share the same behavior (CMS-4161)
- Templates registered manually using
ITemplateRepository.AddTemplatesare now associated with the model type for which they are added, rather than the model type indicated through any
IRenderTemplateinterface of the template. This may affect the template selection during runtime, as the model type association is used to decide which template to use when rendering a content item. This change does not affect automatically registered templates, as they are already registered using the type specified by the
- The default implementation of
ITemplateRepository.AddTemplatesnow checks if a template exists before adding it. If the template is already registered, it does not add another one.
- The default implementation of
ITemplateRepository.AddTemplatesnow makes sure that all template models are read-only before adding them to the repository.
EPiServer.Core.Transfer.IRawContentRetrieverno longer populates the value of each
RawProperty. Instead, this is done by calling the
EPiServer.Core.Transfer.IPropertyImporterhas changed slightly to match the new
PropertyData.ToRawString()is no longer called when exporting data. If a Custom
PropertyDatatype had previously overridden the
ToRawValuemethod, it must now move that functionality to a class that implements
IPropertyExportTransformand register it with the
PropertyJson-based properties, such as
PropertyList<T>, no longer rely on
JsonConvertersfor their serialization. They now use
Newtonsoft.Json.JsonConvertdirectly. This means that
JsonConvertersmust be defined as attributes on the classes and properties to which they apply.
Explicit IVersionable implementation on PageData is removed (CMS-7700)
PageDatano longer exposes a separate explicit implementation of
Performance improved when loading large amounts of uncached content (CMS-7735)
CreateWritableCloneis used to create new instances of content instances when loading from database.
Target .NET Standard 2 in CMS.Core and Framework (CMS-8133)
ThumbnailManagerhas been moved to EPiServer.Cms.AspNet.
Castle.Coredependency has been changed to [4.2.1, 5.0).
Castle.Windsordependency has been changed from [4.1.0, 5.0).
Scheduled jobs have a shorter default content cache expiration (CMS-8653)
- Content loaded from a database and added to cache by scheduled jobs has a shorter cache expiration (default 1 minute).
Memory usage optimization: Data class PropertyData does not expose services (CMS-8659)
SettingsIDis obsoleted. Use extension method
SettingsContaineris obsoleted. Use the extension method
TranslateDisplayName()/TranslateDescription()was moved to extension method.
- CMS-7749 The Provider property is no longer supported, as it is not possible to expose a fully thread-safe IList implementation.
- CMS-7791 Simple address is now the last registered router.
MoveContentEventArgs.ContentLinkis updated when content is moved between providers.
- CMS-9129 Unsupported HostType's Service, Installer, VisualStudio have been obsoleted.
- CMS-1130 The
UIHint.MediaFolderhave been obsoleted and are replaced by
- CMS-1252 Error message now displayed when updating partially rendered content.
- CMS-6217 Content repository descriptor keys are now not case sensitive.
IContentChangeManager.Move(IContent source, IContent destination, bool createAsLocalAsset)now returns the
ContentReferenceof the moved content instead of void. This adds support for the scenario where content is assigned a new
ContentLinkvalue when it is moved between different content providers.
ApplicationUIUserManager<TUser>.ResetPassword(IUIUser user)now throws a not supported exception. This is due to the fact that ASP.NET Identity does not support generating new passwords for security reasons. Use the new method
ResetPassword(IUIUser user, string newPassword)instead.
- CMS-8802 The deprecated datetime.js methods
deserialize()have been removed.
- CMS-8816 The deprecated slash method has been removed from epi/string.
- CMS-8817 epi-cms/widget/HierarchicalList has been replaced by epi-cms/asset/HierarchicalList.
- CMS-8830 The deprecated property
ContentSearchProviderBasehas been removed. Use
- CMS-8832 The deprecated
EPiServer.Shell.Web.Mvc.Html.DojoExtensionshas been removed, use
DateTimeproperties on the visitor group criterion model are serialized to ISO 8601 when being sent to the client.
MissingConfigurationExceptionnow inherits directly from
UIHint.LongStringhas been obsoleted and should be replaced with
- Properties which use LegacyPropertyEditorDescriptor should be explicitly annotated with
- Obsoleted constructors are removed where there are public constructors available that can be used instead.
- Obsoleted properties have been removed from
- Obsoleted classes
SecurityEntityUtilityhave been removed.
- Obsoleted methods have been removed from
selectionChangedwhen deselecting row. Previously, it was triggered only when a row was selected.
- The obsoleted delegate
DependencyGetterhas been removed.
- The obsoleted methods
epi/shell/_Commandhas been changed from public to internal.
- The class
ContentReferenceStorethat was available by epi.cms.contentreferences key is now obsoleted.
An updated DLL is available in the EPiServer.CMS.Core NuGet package (packages/EPiServer.CMS.AspNet.11.1.0/tools/MirroringService/), which you must manually patch when upgrading.
- EPiServer.MirroringService.MirroringTransferProtocol.WCF.MirroringTransferClient,EPiServer.Enterprise to
- EPiServer.Security.WindowsMembershipProvider,EPiServer to
EPiServer.Security.WindowsMembershipProvider, EPiServer.Cms.AspNet in web.config.
Updated 5 months ago