All Changes in EAV and 2sxc v15
Version 15
2sxc v15.00 (2022-12-23)
- ✅ Improve logging
- ✅ Place it in an own library DLL for better reuse
- ✅ Create ICodeLog for improve logging in Razor and WebApi which ensures compatibility with existing code
- ✅ Improve automatic connecting logs with helpers so most
Init(Log)
become obsolete
- ✅ Update CsvHelper DLL to latest version
- ✅ Improve install-file names
- ✅ Update to Razor Blade 4
- ✅
Support Oqtane v4 with .net 7- ATM Oqtane doesn't plan on going to .net 7 - ✅ Tutorial App
- ✅ Improve internal structure
- ✅ Change how to show code vs results - mostly use tabs
- ✅ Razor APIs and Services
- ✅ Improve
ImageService
to have animgAltFallback
on.Img()
,.Picture()
and.ImgOrPic()
- ✅ Improve
ImageService
to better respect multi-language crop-settings and labels - ✅ Improve
Page
serviceParameters.Set(...)
to also allow bool, int etc. (not just strings) - ✅ Create Kit.HtmlTag
- ✅ Create
ITurnOnService
andKit.Page.TurnOn(...)
- ✅ Improve
- ✅ Data Sources
- ✅ Improve
ValuFilter
Data Source to also allowContains
on numbers
- ✅ Improve
- ✅ DB Clean-Up
- ✅ Remove SQL triggers which log XML data to
DataTimeline
which isn't used any more - ✅ Remove XML column
NewData
inDataTimeline
which isn't used any more
- ✅ Remove SQL triggers which log XML data to
- ✅ Internal APIs
- ✅ Improve Settings/Resources Stack with various unit tests
- ✅ Improve Settings/Resources Stack to have internal quick access to deep objects using a path like
"Images.Content.Width"
- ✅ Create API
DependenciesBase
to better handle log attachments to dependencies
- ✅ TinyMCE upgrade to v6
- ✅ Drop
_
prefix requirement on cshtml files by protecting them in an another manner- ✅ It's not needed on Oqtane, as the files are not accessible
- ✅ Only needed ATM on DNN because each file could be called from the browser directly
- ✅ Probably make sure all base classes refuse to render standalone
- ✅ Ability to use compressed GZIP data for DataTimeline (patrons)
- ✅ Technical features
- ✅ Toggle to turn on/off
- ✅ Rename internal
.data
folder toApp_Data/system
and similar as this folder will contain private data in future - ✅ Feature to deploy a corporate license in an installation to auto-enable certain features on all sites
- ✅ Settings: Ability to augment the preset configuration / settings with custom overrides
- ✅ Provide Google Services API Keys (Maps, Translate) from backend to edit UI
- ✅ Ability to set own default GPS coordinates for when not set
- ✅ Ability to configure them in settings
- ✅ Provide Default maps coordinates from backend to Edit UI
- ✅ Ability to import apps from folder directly (patrons)
- ✅ Functionality
- ✅ Hints / Infos to user
- ⏳ Documentation
- ✅ Integration of Google Translate in the Edit UI
- ✅ Functionality for one field
- ✅ For many fields
- ✅ Configure so it only affects string fields
- ✅ Ability to disable auto-translate on certain fields - eg. name fields
- ✅ Ability to add custom API key
- ✅ Clear warning when using the demo key
- ✅ Make sure the license is respected and easy to spot
- ⏳ Documentation for this (how the fields are selected, how to activate, etc.)
- ✅ Release v15 before XMas
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
2sxc v15.01 (2023-01-31)
- ✅ Export / Import
- ✅ Create export bundle configuration to mark content-types and entities for export together
- ✅ Create json bundle export system
- ✅ Create json bundle import system
- ✅ Extend the file-based data loader to also load bundles
- ✅ Change all pre-loaded data items to be in bundles
- ✅ New Auto-Installer with search, list-view etc.
- ✅ Remaining docs for Features released in v15.00
- ✅ Finish API and docs for Logging v15.01
- ✅ Ability to import apps from folder directly (patrons)
- ✅ Documentation for google translate (how the fields are selected, how to activate, etc.)
- ✅ Indicate premium/patron features in UI and explain what it is and how to get it
- ✅ Visual indicators on buttons
- ✅ Visual messages in certain places
- ✅ Details dialog to know more about the feature
- ✅ Public DB of the feature explaining it in more details, how to activate etc. on https://patrons.2sxc.org/features
- ✅ Licenses / Features
- ✅ Ability to license a specific feature only (for enterprise customers)
- ✅ Feature to generate enterprise license fingerprints for enterprise distribution
- ✅ Allow parts of the license to expire earlier (for evaluation purpose)
- ✅ Internal / Data Management
- ✅ Ability to retrieve Entities for App, parent-App, global-App etc. for certain settings-pickers
- ✅ System query to retrieve such entities (need for Wysiwyg-functionality)
- ✅ Oqtane: fix compatibility so it works in Oqtane 3.3+
- ✅ FIPS Compliance
Note that the image resizer is not yet FIPS compliant, and it may take a while for it to become compliant- ✅ Change Secure Data Service to be FIPS compliant
- ✅ Change System fingerprint to use FIPS compliant SHA256
- ✅ Internal - re-org ApiKeys for UI to be in a better place
- ✅ Enhance Page DataSource with community requests
2sxc v15.02 (2023-02)
This was a quick release, no changes to report ATM, they will be reported in v15.03
also done:
- ✅ Upgrade Blazor-CMS.org to use 2sxc 15.01 for real-life testing
- ✅ Create blog on Blazor-CMS.org
- ✅ Publish Tutorial in Blazor-CMS.org
- ✅ CSP Training at DNN Summit
- ✅ Image Perfectionist Training at DNN Summit
2sxc v15.03 (2023-02-21)
- ✅ APIs
- ✅ EntityId now has a OwnerId property
- ✅
Kit.Page.Activate(condition: bool, features: "...")
- ✅ move to .net 6 (and drop .net standard 2.0) - almost done, last tests
- ✅ Bugs
- ✅ RazorBlade json serialization https://github.com/2sic/2sxc/issues/2998
- ✅ Support for use on DNN 404 pages
- ✅ Date was off in date-picker
- ✅ FIPS compliance on encryption APIs
- ✅ DataSources
- ✅ Pages DataSource
- ✅ Improve Pages DataSource with
LinkTarget
- ✅ Improve Pages DataSource with internal ability to configure what to get
- ✅ Improve Pages DataSource to have a UI to configure what to get - @2dm
- ✅ Improve Pages DataSource with
- ✅ Users DataSource Massively improved - with Roles and configurable
- ✅ Roles DataSource improved
- ✅ Pages DataSource
- ✅ Internal - Rework Getting-Started Server to be latest and greatest @2ro ... and more see https://github.com/2sic/2sxc/releases
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
2sxc v15.04 (2023-03-22)
- ✅ Oqtane: Compatibility with Oqtane 15.04
- ✅ Formula improvements
- ✅ Get App or global settings for formulas
- ✅ Better support for promises
- ✅ Ability to set the value of another field
- ✅ Intellisense on Formulas
- ✅ Cdn remapping to other cdn like cdn.2sxc.org or custom CDN
- ✅ Ability to remap all cdn urls to a different url
- ✅ New template CDN on https://cdn.2sxc.org
- ✅ New template repo for anybody that wants to create their own CDN or host on their path https://github.com/2sxc/cdn.2sxc.org
- New APIs for Data Sources finalized
- ✅ Public
IDataFactory
API - ✅ Public
IDataSourceFactory
API - ✅ Enhanced
IDataSource
API - ✅ Prototype of live DataSources
- ✅ Public
- ✅ Make everything internal immutable
- ✅ Improve WYSIWYG
- ✅ Ability to select which "mode" the editor is in, affecting toolbars
- ✅ Allow selected mode to affect other things (like deny image-drop if in text-mode)
- ✅ Sections to better align images
- ✅ Use classes to determine size instead of styles
- ✅ WYSIWYG Images which auto-resize on the server based on size (eg 1/2 of the screen)
- ✅ New Data Sources and System Queries
- ✅ New Data Source
Scopes
- ✅ New Query
Scopes
- ✅ New Data Source
MetadataTargetTypes
- ✅ New Query
MetadataTargetTypes
- ✅ New DataSource
Licenses
- with state - ✅ New Query
Licenses
- ✅ New DataSource
Features
- with state - ✅ New Query
Features
- ✅ New DataSource
Sites
- ✅ New Query
Sites
- ✅ Improve data sources for
Pages
- ✅ New Data Source
- ✅ Query Improvements
- ✅ Allow edit/new to be done in a query-selector
- ✅ Get query to know if entity can be edited (based on AppId)
- ✅ We've renamed the system queries to have a much simpler name such as
System.Sites
which we'll make available to public use soon. - ✅ New LookUp for Settings- and Resources-Stack - to use
Settings
andResources
- ✅ Change internal key for
Settings
toMyConfiguration
to avoid naming conflicts (breaking but probably no impact)
- ✅ Custom DataSources - breaking
- ✅ New
IDataFactory
API - ✅ New
RawEntity
andIRawEntity
API - ✅ New API for data sources to make data generation easier
- ✅ Improved custom DataSources API
- ✅ New base class
CustomDataSourceLight
- ✅ New base class
CustomDataSourceAdvanced
- ✅ Error handling is now simpler / more standardized
- ✅ New
- ✅ Jewels
- ✅
CmsContext.View
now has aPath
,PathShared
,PhysicalPath
andPhysicalPathShared
property - ✅
Page.Activate(...)
now has acondition: true
parameter which lets you only activate a feature if a condition is met - ✅
Page.Parameters
has newGet(name)
andGet<type>(name)
andGet(name, fallback: 7)
APIs to make it easier to work with url parameters
- ✅
- ✅ The Toolbar now has a new
Info
button which is used to show an info-bubble to the user or provide a help-link to somewhere. You'll soon see this in our standard apps to inform users about special cases such as "why the toolbar isn't available on demo-data" - ✅ Bugs fixes
- ✅ 2sxc in DNN Skins on 404 pages https://github.com/2sic/2sxc/issues/2986
- ✅ Issue with Mobius Forms in v15.03
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