London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Ben  McKernan
Sep 18, 2017
  13008
(11 votes)

Planned Breaking Changes 2017 (CMS UI)

Notable Changes

TinyMCE Package

The TinyMCE editor and related plugin configuration features will be moved into a separate NuGet package as an add-on with its own versioning number and breaking changes. This is to allow us to have a release cycle for TinyMCE which is decoupled from the CMS UI release cycle.

 

ASP.NET Identity

It was previously not possible to reset a user's password programmatically when using the ASP.NET Identity provider. Due to a bug, the method for resetting the password simply generated a reset token but never changed the password.

ApplicationUIUserManager<TUser>.ResetPassword(IUIUser user) will now throw a not supported exception. This is because ASP.NET Identity does not support generating new passwords for security reasons, i.e. it is bad practice to send a new password to the user in plain text. The new method ResetPassword(IUIUser user, string newPassword) should be used instead.

Both methods will still work when using the API with older membership providers.

 

Dynamic Content and XForms Packages

The legacy features Dynamic Content and XForms will be removed from the platform and moved into separate NuGet packages as add-ons with their own versioning number and breaking changes. As the platform progresses, these features will become more limited over time. We recommend migrating to Forms or Blocks wherever possible.

 

Target .NET 4.6.1 Framework

The CMS Core team is now targeting .NET 4.6.1 in order to be compliant with NetStandard 2.0, and as such, all CMS UI projects will also target this framework.

 

Deprecations

jQuery

The jQuery library that is bundled with the CMS UI is being deprecated and should no longer be used.

 

Gadget Framework

As we have mentioned previously here, the gadget framework has been deprecated but will remain in the product for CMS 11. We recommend, however, that you begin to convert your gadgets to components now.

 

Other Changes

  • IContentChangeManager.Move(IContent source, IContent destination, bool createAsLocalAsset) will now return the ContentReference of the moved content instead of void.
  • The key for content repository descriptors is no longer case sensitive.
  • DateTime properties on the visitor group criterion model will now be serialized to ISO 8601 when being sent to the client.
  • The UIHint.BlockFolder and UIHint.MediaFolder have been obsoleted and should be replaced with UIHint.AssetsFolder.
  • The UIHint.LongString has been obsoleted and should be replaced with UIHint.Textarea.
  • Removed many previously obsoleted constructors from classes where another a public constructor is available for use instead.

And of course, included with all this are a lot of bug fixes :)

Sep 18, 2017

Comments

Aria Zanganeh
Aria Zanganeh Oct 31, 2017 12:29 AM

Really good move. Now I can say Episerver is lightweight and Enterprise CMS!

Please login to comment.
Latest blogs
Display page/block thumbnail based on selected site in multi-site solution

In previous blog we described how to control the visibility of the blocks or properties based on the current site in multisite solution. We can use...

Tomek Juranek | May 16, 2025

Understanding the Infrastructure Powering AI Agents for Marketing

The marketing world is increasingly captivated by the potential of AI agents. However, it's crucial to recognize that these agents are not simply...

Patrick Lam | May 15, 2025

Meet the Newest OMVPs – Winter 2025 Cohort

We're excited to officially welcome the latest winter cohort of Optimizely Most Valuable Professionals (OMVPs) - a group of passionate tech...

Satata Satez | May 14, 2025

Helper method to encode query string properly

When using Url.ContentUrl() in Optimizely 12, encodes spaces as + in the query string. If you want to encode the spaces as %20, use the below helpe...

sunylcumar | May 13, 2025

Get ContentReference from GUID

Optimizely CMS 12 provides a Utility function to retrieve Content Reference from a Guid by ussing the below static method. var contentReference =...

sunylcumar | May 13, 2025

Creating a Dropdownlist in Optimizely CMS: Populate ISelectionFactory with values from another block's properties

Create a Block to hold selection options using EPiServer.Cms.Shell.UI.ObjectEditing.EditorDescriptors; using EPiServer.PlugIn; using EPiServer.Shel...

sunylcumar | May 12, 2025