Table of Contents

Breaking Changes in EAV and 2sxc 15

Breaking Changes in EAV and 2sxc v15

We try to minimize breaking changes, and most breaking changes won't affect your work, because it's internal API. We're documenting it here to ensure you know what happened, in case you still run into this.

Summary

V13 did some clean-up. It will rarely affect you, but if you are using the TimelineJs App it will.

Breaking Changes in 2sxc 15.00

Tip

In summary we've made a lot of internal breaking changes. But for all normal users it will have no effect at all.

We believe it will only affect you in these scenarios:

  1. If you have a custom DataSource, you will need to make some minor changes and recompile them
  2. If you used special, non-public Logging APIs you would need to update your work
  3. If you used any undocumented APIs, you will need to check if everything still works

API Changes that may affect you

  1. DataSource base class was completely refactored
    see instructions
  2. Old static ToSic.Eav.DataSource was removed (deprecated since v13)
  3. Internal logging API ILog was completely refactored
    see instructions
  4. Internal object wrappers were completely refactored
    see instructions
  5. TinyMCE Upgrade to v6
  6. Database changes
  7. Minor API changes

Breaking Updates which probably don't affect anybody

  1. SQL changes - minor updates to the Database
  2. Internal APIs which were removed
    1. Static ToSic.Eav.Data.Builder.AttribBuilder.AddValue(...)

Breaking Changes in 2sxc 15.03

Tip

In summary we've made a lot of internal breaking changes. But for all normal users it will have no effect at all.

We believe it will only affect you in these scenarios:

  1. TODO

API Changes that may affect you

  1. An internal user property IUser.IsDesigner was renamed to IUser.IsSiteDeveloper
  2. An internal, deprecated user property IUser.IsAdmin was removed
  3. An internal, deprecated user property IUser.IsSuperUser was removed
  4. An internal property IUser.Guid was changed from Guid? to Guid
  5. The Users DataSource had a property called IncludeSystemAdmins which was changed from bool to string to allow for more options
  6. The Users DataSource had a property called RoleIds which returned a non-standard string-array. It has been removed, and the new Roles returns standard related entities.
  7. Removed static ToSic.Eav.Data.Build.Entity(...) method which was deprecated in v12

API Changes which should really not affect you

These are internal APIs which we changed to make everything more immutable. They should never have been in use outside of the internal code.

  1. Changed IValue.Languages from IList to IEnumerable and made it immutable
  2. Change IEntity.Attributes from Dictionary<string, IAttribute> to IImmutableDictionary<string, IAttribute> as a step to later make it immutable
  3. Removed some old, probably never used APIs on IAttribute<T> such as
    • IAttribute<T>[int[] languageIDs]
    • IAttribute<T>[string]
    • IAttribute<T>[string[]]
    • IAttribute[string[] languageKeys] - was always marked as private
  4. Changed the type of Attribute.Type from string to ValueTypes to make it more strong-typed
  5. Removed the property Attribute.ControlledType which previously contained the ValueType

Breaking Changes in 2sxc 15.06

Tip

In summary we've made a lot of internal breaking changes. But for all normal users it will have no effect at all.

We believe it will only affect you in these scenarios:

  1. TODO

API Changes that may affect you on IEntity

These were internal APIs which were not publicly documented, but may have been used by some developers.

  1. IEntity.GetDraft() was removed to ensure the entity is immutable
  2. IEntity.GetPublished() was removed to ensure the entity is immutable

Note: GetDraft() and GetPublished() are still available on DynamicEntity in Razor and WebApi. They were only removed on IEntity.

Renamed DataSources

These data sources had uncommon names, and were renamed to be more consistent. We believe that they were only used in VisualQuery and not in code, so it should not affect you.

  1. CsvDataSource is now Csv
  2. SerializationConfiguration is now Serialization