All Changes in EAV and 2sxc v10
Version 10
Changes Version 10.01 - 10.09 LTS
- Develop and fine-tuning of the new Edit-UI based on Angular 8
Changes Version 10.20-00 to 10.20-05
- Enhanced ListCache so it will prevent parallel buildup - important for long-loading DataSources like SharePoint DataSources
- Updating to RazorBlade 3.1 which doesn't need extension methods
Changes Version 10.20-06
- Created
AsDynamic(string)
- Created
AsDynamic(DataSource)
to enableAsDynamic(Data)
instead ofAsDynamic(Data["Default"])
Changes Version 10.21
- New
AsList()
for better code - New
AsDynamic(string)
to work with json /dist/
is now cleaned up on every update, to better distribute changing JS file structures
Changes Version 10.22
- Query Params added for VisualQuery
- Created QueryRun DataSource
- Insights now includes the code file and line numbers
- Insights now also measures time needed to execute some code
- Various performance enhancements
- Improved SoC for AppsCache and AppRoot DataSource
Changes Version 10.23
- Lots of logging enhancements
Changes Version 10.24 LTS
- New stable LTS
- Improved/fixed QueryRun DataSource
- Improved Insights
- Enhancements to use 2sxc with Redis Cache
- WYSIWYG enhancements for better H1-Hx, P and Blockquote
- Performance enhancements
- Intenal refactoring for APIs
- Introduced an internal Compatibility-Level to disable very old features when using new RazorComponents
Changes Version 10.25 LTS
- Changed how the $2sxc client JavaScripts are loaded for much better performance and better Google PageSpeed
- Enabled various features for the Content area which previously were hidden, like Resources and Settings
- Released brand new Content-Templates App with best-practices for 10.25
- Fixed bugs with Evoq Page Publishing
- Enhanced the ValueFilter DataSource to handle dates which were null
Changes Version 10.26
- TinyMCE Updated to 5.1
- Enhanced
CreateInstance
API to also work when compiling Razor files from a WebApi - New DataSource
StreamPick
- New automatic Param called
[Params:ShowDrafts]
to be used in VisualQuery - returnsTrue
orFalse
- New tokens
[App:AppId]
and[App:ZoneId]
to use in VisualQuery calles (dropdown from query) - Changed List-Caching bbehavior to create more reliable cache-keys for complex queries (previously it only went through
Default
streams to generate the cache-key)
Changes Version 10.27
Possibly breaking changes
- Because the dynamic entity list now has a type which is dynamic, it cannot be cast to
List<dynamic>
any more.IList<dynamic>
works, but in case you have any code casting it toList<dynamic>
you'll need to change that to eitherIList<dynamic>
orIEnumerable<dynamic>
.
New Features / Major Improvements
- Changed DynamicEntity so that accessing a property which contains many other entities it will return a
DynamicEntityWithList
. This allows Razor files to access the properties like.EntityId
or.FirstName
of the main entity in a sub-list easily without requiringAsList(...)
#1993 - Updated Quick-Dialog to use Angular 9, Ivy and the latest Dnn-Sxc-Angular #1992
- New DataSource AttributeRename #2004
- Completely refactored internal list management API #1995
- Complete refactoring of the inpage code to make it typesafe (no more
any
types) - Created brand-new, simpler way to create custom Toolbars and specs
- Introduces JS/API 2sxc-Insights for debugging In-Page code
Enhancements
- Performance-Enhance App DataSource to delay building objects until needed #1991
- Performance-Enhance internal Token Lookup #1998
- Enhanced Dnn Search Index logging #1997
- Corrected help-links on all data sources #1994
Bugfixes
- Cache-All-Streams only used the Default-Streams for Cache-Key identification #1988
- QueryRun DataSource doesn't show statitics on all streams #1989
- Modified date and Owner information were missing on json stored entities #2005 / #2006
- Fixed bug in JS API for non-2sxc endpoint resolution #2000
- Queries didn't resolve Dnn tokens when accessed in the Search Index #1999
Breaking Changes in EAV and 2sxc
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
Version 10 has a lot of small breaking changes because we restructured the internal API so it's consistent when we publish it. All these things shouldn't affect you, because they were internal APIs, but in case it does - here's what we did.
Version 10.22 and 10.23
- Renamed the
RootDataSource
and the Interface toIAppRoot
- Split SOC of the
AppRoot
DataSource so that caching, Root-Metadata and ListCache is fully separate - Since the Logging system now auto-picks up the code lines and names of the methods, we simplified the commands and dropped some parameters.
- Moved quite a bit of the DataSource objects into sub-objects, again for SOC.
Version 10.20-04 (ca. 2019-12-03)
- Renamed
DataTableDataSource
toDataTable
, old name still works. - Renamed
ExternalDataDataSource
toExternalData
, old name still works. - Renamed
ToSic.SexyContent.DataSources.ModuleDataSource
toToSic.Sxc.DataSources.CmsBlock
, old name still works. - Renamed
ToSic.Eav.DataSources.VisualQuery.VisualQueryAttribute
toToSic.Eav.DataSources.Queries.VisualQueryAttribute
, old name still works. - Renamed
ToSic.SexyContent.Environment.Dnn7.Factory
toToSic.Sxc.Dnn.Factory
, old name still works. - Renamed
ToSic.Eav.DataSources.BaseDataSource
toToSic.Eav.DataSources.DataSourceBase
for consistency, old name still works. - Moved the LookUp namespaces into the Core DLL
Version 10.20-02 (ca. 2019-11-22)
More internal changes which shouldn't affect anybody, but make the API ready for public docs...
- Moved/renamed the internal
Eav.AppDataPackage
toEav.Apps.AppState
- Moved/renamed some internal interfaces like
Entity...
- Did a major change for how
Attribute<T>
for relationships work.
Before they wereAttribute<EntityRelationship>
and now they areAttribute<IEnumerable<IEntity>>
.
This also affectsValue<EntityRelationship>
which is nowValue<IEnumerable<IEntity>>
- Moved
Tenant<T>
andContainer<T>
including matching interfaces toEav.Environment
- Renamed
IAppIdentity
toIInAppAndZone
andIZoneIdentity
toIInZone
- Renamed
ICacheKeyProvider
toICacheKey
- Renamed
CacheChainedIEnumerable<T>
toSynchronizedList<T>
- Moved/Renamed
MetadataFor
toEav.Metadata.Target
. Left old name compatible. - Moved some extension methods for IEntity from
ToSic.Eav.Data.Query
toToSic.Eav.Data
- Changed
Permissions
to be strong-typed EntityBased objects
Version 10.20.01 (2019-11-12)
- Internal code now uses the term
Header
instead ofListContent
. External code provides both for backward-compatibility - moved internal interfaces for engines (Razor/Token) to final namespaces
ToSic.Sxc.Engines
IEngine
EngineBase
ITokenEngine
IRazorEngine
- corrected architecture - some template-management code had slipped into
Eav.Apps
, was moved back toSxc.Apps
- The
Template
object was moved fromEav.Apps
toSxc.Views
and we added an interfaceIView
. We also renamed the internal propertiViewNameInUrl
toUrlIdentifier
. - To correct the API a CmsManager was created extending the AppManager, which is in charge of Views
- Moving internal stuff related to content blocks
IContentBlock
fromSexyContent.Interfaces
toSxc.Blocks
- from
ToSic.SexyContent.ISxcInstance
toToSic.Sxc.Blocks.IBlockContext
- actually moved a lot of things there incl.
ContentBlock
nowBlockConfiguration
and more - all internal stuff
- Moving the
ToSic.SexyContent.App
toToSic.Sxc.Apps.App
- In a razor page, we added the preferred
Purpose
. The oldInstancePurpose
will still work - Placed some things we just moved in 10.20 to a final place - since it's a very recent change, we updated the docs in the 10.20.00 section
Changed, but completely internal
- Some namespaces on
SexyContent.ContentBlocks
were moved toSxc.Blocks
Version 10.20.00 (2019-11-05)
- the internal interface
IInPageEditingHelpers
was moved fromToSic.SexyContent.Interfaces
to the namespaceToSic.Sxc.Web
- the internal interface
ILinkHelper
was moved toToSic.Sxc.Web
- the internal interface
IHtmlHelper
was moved toToSic.Sxc.Dnn
- the property
Configuration
on dynamic entities was deprecated in 2sxc 4 and removed in 2sxc 10 - we don't think it was ever used - moved internal Metadata interfaces (ca. 5) into final namespace ToSic.Eav.Metadata
- Moved a bunch of internal interfaces which we believe were never used externally from
ToSic.Eav.Interfaces
toToSic.Eav.Data
ToSic.Eav.Data.IAttribute
ToSic.Eav.IAttribute<T>
IAttributeBase
IAttributeDefinition
IChildEntities
IContentType
IDimension
IEntityLight
ILanguage
IRelationshipManager
IValue
IValue<T>
IValueOfDimension<T>
- Moved a bunch of internal interfaces which we believe were never used externally from
ToSic.Eav.Apps.Interfaces
toToSic.Eav.Apps
IApp
IAppData
IAppDataConfiguration
IAppEnvironment
IEnvironmentFactory
IInstanceInfo
IItemListAction
IPagePublishing
ITenant
IZoneMapper
- the internal namespace
ToSic.Eav.ValueProvider
was changed toToSic.Eav.LookUp
and inside it
we renamed a bunch of internal interfaces and objects which we believe were never used externally
Deprecated/Changed, but not broken
- the internal interface
ToSic.SexyContent.IAppAndDataHelpers
was renamed toToSic.Sxc.IDynamicCode
but the old interface still exists, so it shouldn't break
it was used by Mobius Forms - moved
ToSic.Eav.Interfaces.IEntity
toToSic.Eav.Data.IEntity
- but preserved the old interface for compatibility it was used everywhere
Clean-Up, but not broken
- We're transitioning to the term
Header
instead ofListContent
in templates.
The Razor pages and WebApi have this starting now, while old terms still work. Note that we're not creating aHeaderPresentation
, because you should useHeader.Presentation