All Changes in EAV and 2sxc v16
Version 16
Changes in 2sxc 16.00 LTS (2023-05-04)
No relevant changes, just minor bugfixes + our convention to upgrade the main version every 6 months. We mainly finished the docs for various features, so this is what is now done.
- ✅ improve IConfiguration API - lighten the
IDataService
API - ✅ Document new data sources API
- ✅ finish Dynamic DataSources
- ✅ Document CDN / Asset management
- ✅ Document Formula improvements
- ✅ IDataService completed
- ✅...and documented
- ✅ New WYSIWYG mode completed (and documented)
- ✅ Toolbars Service Improvements: transport
data
for use in notes etc. ca. 0.5d 2dm - ✅ Data-conversion of entities to json in attribute... - documented
Changes in 2sxc 16.01 LTS (2023-05-23)
Various bugfixes + some enhancements.
- ✅ New rich WYSIWYG experience
- ✅ Edit-UI can now be opened to only show a few specified fields (feature API not yet public, but used in the new WYSIWYG feature) #3080
- ✅ New ITypedItem and AsTyped(...) API
- ✅ New Data.Content and Data.Header objects
- ✅ IDynamicEntity now has methods like
String(...)
,Int(...)
,Bool(...)
,Date(...)
,Decimal(...)
,Double(...)
,Long(...)
,DateTime(...)
,Float(...)
to convert values to the desired type. #3089 - ✅ Sort-Items UI was enhanced with remove, add, add-existing #3077
- ✅ DynamicDataSource now supports relationships #3078
- ✅ DynamicDataSource now shows better errors in Razor on compile issues #3084
- ✅ Razor now automatically suggests the
insights
button on the toolbar if there are errors #3085 - ✅ Enhancement: Serializing Entities to JSON now skips
empty
fields such as messages or ephemeral fields - ✅ Clean up Formulas code into better SoC @SDV
- ✅ Clean up ancient documentation which is probably invalid, but still seen by many :(
Dnn / Evoq
- ✅ Evoq: Better support for list management together with page workflow #3087
- ✅ Dnn Skin: Adding module to skin using IRenderService now allows editing entities #3092
Oqtane
- ✅ Enabled full WASM support for Oqtane #3083 (previously only server-rendering worked)
- 🪲 Improvement on how AJAX reloads work, resolves some reload-errors #3081
Minor Bugfixes
- 🪲 Two bugfixes related to Formulas v1 - returning date #3088
- 🪲 XML-Data-Export now works with IsContentAdmin permissions (before it required IsSiteAdmin) #3075
- 🪲 View list of data now works with IsContentAdmin permissions (before it required IsSiteAdmin)
- 🪲 Fixed issue with
GetService<ILogService>()
becauseILogService
had been renamed toISystemLogService
#3082
Changes in 2sxc 16.02 (2023-07-07)
Major Enhancements
- ✅ ImageFlow upgraded to version 0.10.0 - thereby making sure it works with FIPS enabled #3121
- ✅ Brand new typed code Pro mode
ITypedItem
andITyped
interfaces with properties such asId
,Guid
and methods such as.String(name)
, ...RazorPro
,ApiPro
,CodePro
base classes with completely reworked API such asAsStack(...)
,MyPage
orAllSettings
ApiPro
now serializes JSON using new defaults which are more common in WebApis (lower-case properties, auto-serialize entities, etc.)
Documentation
- ✅ Upgraded DocFX from 2.48.1 to 2.67.3 with major improvements to the generated docs
- ✅ Improved Documentation of all Razor and WebApi base classes!
Support for Developers
- ✅ Dramatically improved insights with more details and filtering options
- ✅ Created system to automatically detect and warn about deprecated code - using buttons in the toolbar
- ✅ Created CodeHelp system to guide developers when common coding mistakes were made
- ✅ New Obsolete system collects issues per App and shows them even if the current Razor is not affected
- ✅ Show CodeHelp warnings if a RazorPage doesn't have
@inherits
Various bugfixes + some enhancements.
- ✅ Refactored Razor and WebApi base classes to use Composition over Inheritance
- ✅ RazorBlade upgrade from v4.2.0 to 4.4.0 (also for .net 7 compatibility)
- ✅ Feature to not show edit-toolbar buttons on HTML coming from Resources
- ✅ Improve not showing a metadata-toolbar on images which are coming from demo-items
Dnn / Evoq
- ✅ Downgrade SQL to still work with SQL Server 2012 as people had trouble upgrading #3120
- ✅ Since ImageFlow was upgraded, the following DLLs were also upgraded
- Imageflow, 0.7.24 -> 0.10.0
- Imageflow.Net, 0.7.24 -> 0.10.0
- Imazen.Common, 0.7.7 -> 0.8.1
- Imazen.HybridCache, 0.7.7 -> 0.8.1
- Newtonsoft.Json, Version=10.0.0.0 -> 13.0.0.0
- ✅ As part of the upgrade we also had to upgrade some MS DLLs
- Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0 -> 7.0.0.0
- System.Collections.Immutable, Version=6.0.0.0 -> 7.0.0.0
- System.Text.Encodings.Web, Version=6.0.0.0 -> 7.0.0.0
- System.Text.Json, Version=6.0.0.0 -> 7.0.0.2
- System.Memory, Version=4.0.1.1 -> 4.0.1.2
Oqtane
- ✅ Oqtane 4.0 Support (with .net 7) #3123
- ✅ Reworked API Middleware to avoid conflicts with OAuth 2
Minor Bugfixes
- 🪲 Fixed issue with Swiper not being able to add slides #3108 #3112
- 🪲 Fixed issue with DatePicker in Edge and also added more cultures #3113
- ✅ Changed internal APIs to return RazorBlade
IHtmlTag
objects instead of previouslyIHybridHtmlString
#3098
Changes in 2sxc 16.03 (2023-08-21)
Enhancements around Typed Code
- ✅ Typed: rename
RazorPro
toRazorTyped
etc. #3147 - ✅ Make all typed objects very strict when checking if fields exist
- ✅ Add much more helpful info / error when fields not found
- ✅ Typed: Massively enhanced with strict checks and reduced the possibility of writing code which doesn't do anything
- ✅ Typed:
ITypedItem
now has a new .Picture(...) method making the code nicer #3135 - ✅ Typed:
ITypedItem
s can now be mocked #3141 to create alternate data in code when no data exists - ✅ Typed: New methods
ContainsKey(...)
,Keys(...)
#3142 - ✅ Typed: New methods
IsEmpty(...)
andIsNotEmpty(...)
#3144 - ✅ Typed: method
.String(..., scrubHtml)
now also accepts a string containing tags to remove #3146 - ✅ Typed: If an error occurs, much more information is provided as to how to fix #3143 #3145
- ✅ Typed Json: now also supports paths, so you can use
Kit.Json.ToTyped(jsonString).Int("Root.Child.Id")
- ✅ Typed Json: now also strict using propsRequired by default
- ✅ Typed: the property
.Dyn
now only exists onITypedItem
(entity-based) and not on other wrappers
Other Enhancements
- ✅ Image Resizer: New
Square
resize settings #3134 - ✅ Image Resizer:
ImageService
can now also handleIFile
objects and get the metadata automatically #3140 - ✅ Web Farm Cache: Updated for v16.02+ (enterprise customers only)
- ✅ Page Parameters: now support ITyped so you can use MyPage.Parameters.Int("id") and similar
Support for Developers
- ✅ Errors now highlight the
.cshtml
line which caused the error - ✅ Errors on mistyped property names now gives very detailed information about it
DNN / Evoq
- ✅ Image Resizer: Upgrade to dnn-imageflow 1.2.1 #3130
- ✅ Newtonsoft internal version in DNN Manifest now matches 13.0.3
Oqtane
- ✅ Oqtane: Better error when Oqtane in installed without sufficient DB permissions #3128 / #3131
- ✅ Internal: Code cleanup with warnings new EF-Core #3132
- ✅ Internal: EF Core QuerySplittingBehavior #3133
Minor Bugfixes
- 🪲 turnOn failed on AJAX reloads during editing #3127
- 🪲 Oqtane: Bugfix importing App Assets #3129
- 🪲 Web Farm Cache: Fix issue which occured on license uploads
- 🪲 Licenses: fix issue with multiple licenses / names resulting in an
unlicensed
message
Changes in 2sxc 16.04 (2023-09-05)
Highlight: UniqueKey
- ✅ Razor: New
UniqueKey
property (in Typed mode) #3151 - ✅ Razor: New
Kit.Keys.UniqueKeyWith(...)
for unique IDs and working with JS #3152
Images
- ✅ Images: Images in rich wysiwyg mode now are shown nicely after import into other site
- ✅ Images: Dialog-Options to set empty title and not use fallback #3150
- ✅ Images: Enable crop/title dialog for public files, with delayed toolbar and warning-hint #3057
- ✅ Images: Fix Safari bug with small images #2
- ✅ Images: Ability to specify alternate toolbar #3157
- ✅ Images: Ability to specify no toolbar #3158
- ✅ Images: Ability to use Toolbar outside of main picture/img tag using img.Toolbar() #3156
- ✅ Images: Metadata now also has a DescriptionExtended
Razor in Typed Mode
- ✅ MyModel: Improve handling fallback / required #3149
- ✅ App.Folder.Url to replace App.Path for clearer APIs
- ✅ App.GetQuery(...) to replace App.Query[name]
- ✅ All ITyped objects now behave strict by default
- ✅ Complete various scenarios for ITyped with unit tests, especially conversion of anonymous and json-based ITyped
- ✅ All ITyped now have APIs for ContainsKey, IsEmpty and IsNotEmpty
- ✅ Razor: Errors now highlight the .cshtml file with a 🎯 emoji
GetDraft / GetPublished(decided not to implement yet)- ✅ Override Equality operations - using ITyped.Equals
Oqtane
- 🩸 Improve indexing in Google #3154
- 🩸 Improve pre-render adding JS/CSS
- 🩸 Improve page header changes (title, metadata) using latest Oqtane 4 APIs
Patrons
- 🦸🏽 New feature to better control language fallback sequence (beta) #3159
- 🦸🏽 Improve showing expired features - important when testing a feature for 24h
Bugfixes
- 🪲 Languages: Bug in UI: Some labels and dropdown-labels didn't show in current language #3153
- 🪲 lots of minor bugfixes
Changes in 2sxc 16.06 (2023-09-20)
- ✅ Tutorials for new Pro mode / Quick-Ref
- ✅ Optimize build of 2sxc to use local config-files so it's easier for others to contribute @STV
- ✅ Improve JS build to make it easier for others to contribute
- ✅ Improve headers handling in Oqtane 4
Changes in 2sxc 16.07 LTS (2023-09-22)
- ✅ new
TypeItem.Parent(...)
- especially..Parent(current: true)
api #3173 - ✅ new parameters to the
.Picture(...)
incl.picClass
,imgAttributes
andpicAttributes
- ✅ fix bug where presentation data was generated even if not used #3185
Major: Release 16.07 LTS 🚀
Changes in 2sxc 16.09 (2023-11-22)
- ✅
TypedItem.Picture("Child.Property")
path notation - ✅ fix js minification of
inpage.min.js
- ✅ Release all apps in the new typed mode
- ✅ Blazor .net 8 / Oqtane 5 support
- ✅ Improve file-upload to prevent files with ".." in the name
- ✅ Improve DataSource Caching and cache-flushing
- ✅ Add new (beta ⌛) feature for copyright management (Patron AdvancedCMS) to add copyright info to each image
- ✅ Extend SQL Database to store
SysSettings
andGuid
on Attributes for future features - 🐞 Fix minor issue with old
.Code
for older Razor base classes - 🐞 Fix minor issue with edit-dialog in scenarios with multiple portal aliases
- 🐞 Fix minor issue with
IMetadata.Children(...)
/...Child(...)
#3217 - 🐞 Fix DataSource
LanguageModeler
#3219 - 🐞 Fix DataSource
TreeMapper
- 🩸 Oqtane: Adam backend didn't always serialize all properties #3206