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:
- If you have a custom DataSource, you will need to make some minor changes and recompile them
- If you used special, non-public Logging APIs you would need to update your work
- If you used any undocumented APIs, you will need to check if everything still works
API Changes that may affect you
- DataSource base class was completely refactored
see instructions - Old static
ToSic.Eav.DataSource
was removed (deprecated since v13) - Internal logging API
ILog
was completely refactored
see instructions - Internal object wrappers were completely refactored
see instructions - TinyMCE Upgrade to v6
- Database changes
- Minor API changes
Breaking Updates which probably don't affect anybody
- SQL changes - minor updates to the Database
- Internal APIs which were removed
- Static
ToSic.Eav.Data.Builder.AttribBuilder.AddValue(...)
- Static
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:
- TODO
API Changes that may affect you
- An internal user property
IUser.IsDesigner
was renamed toIUser.IsSiteDeveloper
- An internal, deprecated user property
IUser.IsAdmin
was removed - An internal, deprecated user property
IUser.IsSuperUser
was removed - An internal property
IUser.Guid
was changed fromGuid?
toGuid
- The
Users
DataSource had a property calledIncludeSystemAdmins
which was changed frombool
tostring
to allow for more options - The
Users
DataSource had a property calledRoleIds
which returned a non-standard string-array. It has been removed, and the newRoles
returns standard related entities. - 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.
- Changed
IValue.Languages
fromIList
toIEnumerable
and made it immutable - Change
IEntity.Attributes
fromDictionary<string, IAttribute>
toIImmutableDictionary<string, IAttribute>
as a step to later make it immutable - Removed some old, probably never used APIs on
IAttribute<T>
such asIAttribute<T>[int[] languageIDs]
IAttribute<T>[string]
IAttribute<T>[string[]]
IAttribute[string[] languageKeys]
- was always marked as private
- Changed the type of
Attribute.Type
from string toValueTypes
to make it more strong-typed - 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:
- 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.
IEntity.GetDraft()
was removed to ensure the entity is immutableIEntity.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.
CsvDataSource
is nowCsv
SerializationConfiguration
is nowSerialization