Table of Contents

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.

  1. ✅ improve IConfiguration API - lighten the IDataService API
  2. ✅ Document new data sources API
  3. ✅ finish Dynamic DataSources
  4. ✅ Document CDN / Asset management
  5. ✅ Document Formula improvements
  6. ✅ IDataService completed
  7. ✅...and documented
  8. ✅ New WYSIWYG mode completed (and documented)
  9. ✅ Toolbars Service Improvements: transport data for use in notes etc. ca. 0.5d 2dm
  10. ✅ Data-conversion of entities to json in attribute... - documented

Changes in 2sxc 16.01 LTS (2023-05-23)

Various bugfixes + some enhancements.

  1. ✅ New rich WYSIWYG experience
  2. ✅ 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
  3. ✅ New ITypedItem and AsTyped(...) API
  4. ✅ New Data.Content and Data.Header objects
  5. ✅ IDynamicEntity now has methods like String(...), Int(...), Bool(...), Date(...), Decimal(...), Double(...), Long(...), DateTime(...), Float(...) to convert values to the desired type. #3089
  6. ✅ Sort-Items UI was enhanced with remove, add, add-existing #3077
  7. ✅ DynamicDataSource now supports relationships #3078
  8. ✅ DynamicDataSource now shows better errors in Razor on compile issues #3084
  9. ✅ Razor now automatically suggests the insights button on the toolbar if there are errors #3085
  10. ✅ Enhancement: Serializing Entities to JSON now skips empty fields such as messages or ephemeral fields
  11. ✅ Clean up Formulas code into better SoC @SDV
  12. ✅ Clean up ancient documentation which is probably invalid, but still seen by many :(

Dnn / Evoq

  1. ✅ Evoq: Better support for list management together with page workflow #3087
  2. ✅ Dnn Skin: Adding module to skin using IRenderService now allows editing entities #3092

Oqtane

  1. ✅ Enabled full WASM support for Oqtane #3083 (previously only server-rendering worked)
  2. 🪲 Improvement on how AJAX reloads work, resolves some reload-errors #3081

Minor Bugfixes

  1. 🪲 Two bugfixes related to Formulas v1 - returning date #3088
  2. 🪲 XML-Data-Export now works with IsContentAdmin permissions (before it required IsSiteAdmin) #3075
  3. 🪲 View list of data now works with IsContentAdmin permissions (before it required IsSiteAdmin)
  4. 🪲 Fixed issue with GetService<ILogService>() because ILogService had been renamed to ISystemLogService #3082

Changes in 2sxc 16.02 (2023-07-07)

Major Enhancements

  1. ✅ ImageFlow upgraded to version 0.10.0 - thereby making sure it works with FIPS enabled #3121
  2. ✅ Brand new typed code Pro mode
    • ITypedItem and ITyped interfaces with properties such as Id, Guid and methods such as .String(name), ...
    • RazorPro, ApiPro, CodePro base classes with completely reworked API such as AsStack(...), MyPage or AllSettings
    • ApiPro now serializes JSON using new defaults which are more common in WebApis (lower-case properties, auto-serialize entities, etc.)

Documentation

  1. ✅ Upgraded DocFX from 2.48.1 to 2.67.3 with major improvements to the generated docs
  2. ✅ Improved Documentation of all Razor and WebApi base classes!

Support for Developers

  1. ✅ Dramatically improved insights with more details and filtering options
  2. ✅ Created system to automatically detect and warn about deprecated code - using buttons in the toolbar
  3. ✅ Created CodeHelp system to guide developers when common coding mistakes were made
  4. ✅ New Obsolete system collects issues per App and shows them even if the current Razor is not affected
  5. ✅ Show CodeHelp warnings if a RazorPage doesn't have @inherits

Various bugfixes + some enhancements.

  1. ✅ Refactored Razor and WebApi base classes to use Composition over Inheritance
  2. ✅ RazorBlade upgrade from v4.2.0 to 4.4.0 (also for .net 7 compatibility)
  3. ✅ Feature to not show edit-toolbar buttons on HTML coming from Resources
  4. ✅ Improve not showing a metadata-toolbar on images which are coming from demo-items

Dnn / Evoq

  1. ✅ Downgrade SQL to still work with SQL Server 2012 as people had trouble upgrading #3120
  2. ✅ 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
  3. ✅ 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

  1. ✅ Oqtane 4.0 Support (with .net 7) #3123
  2. ✅ Reworked API Middleware to avoid conflicts with OAuth 2

Minor Bugfixes

  1. 🪲 Fixed issue with Swiper not being able to add slides #3108 #3112
  2. 🪲 Fixed issue with DatePicker in Edge and also added more cultures #3113
  3. ✅ Changed internal APIs to return RazorBlade IHtmlTag objects instead of previously IHybridHtmlString #3098

Changes in 2sxc 16.03 (2023-08-21)

Enhancements around Typed Code

  1. ✅ Typed: rename RazorPro to RazorTyped etc. #3147
  2. ✅ Make all typed objects very strict when checking if fields exist
  3. ✅ Add much more helpful info / error when fields not found
  4. ✅ Typed: Massively enhanced with strict checks and reduced the possibility of writing code which doesn't do anything
  5. ✅ Typed: ITypedItem now has a new .Picture(...) method making the code nicer #3135
  6. ✅ Typed: ITypedItems can now be mocked #3141 to create alternate data in code when no data exists
  7. ✅ Typed: New methods ContainsKey(...), Keys(...) #3142
  8. ✅ Typed: New methods IsEmpty(...) and IsNotEmpty(...) #3144
  9. ✅ Typed: method .String(..., scrubHtml) now also accepts a string containing tags to remove #3146
  10. ✅ Typed: If an error occurs, much more information is provided as to how to fix #3143 #3145
  11. ✅ Typed Json: now also supports paths, so you can use Kit.Json.ToTyped(jsonString).Int("Root.Child.Id")
  12. ✅ Typed Json: now also strict using propsRequired by default
  13. ✅ Typed: the property .Dyn now only exists on ITypedItem (entity-based) and not on other wrappers

Other Enhancements

  1. ✅ Image Resizer: New Square resize settings #3134
  2. ✅ Image Resizer: ImageService can now also handle IFile objects and get the metadata automatically #3140
  3. ✅ Web Farm Cache: Updated for v16.02+ (enterprise customers only)
  4. ✅ Page Parameters: now support ITyped so you can use MyPage.Parameters.Int("id") and similar

Support for Developers

  1. ✅ Errors now highlight the .cshtml line which caused the error
  2. ✅ Errors on mistyped property names now gives very detailed information about it

DNN / Evoq

  1. ✅ Image Resizer: Upgrade to dnn-imageflow 1.2.1 #3130
  2. ✅ Newtonsoft internal version in DNN Manifest now matches 13.0.3

Oqtane

  1. ✅ Oqtane: Better error when Oqtane in installed without sufficient DB permissions #3128 / #3131
  2. ✅ Internal: Code cleanup with warnings new EF-Core #3132
  3. ✅ Internal: EF Core QuerySplittingBehavior #3133

Minor Bugfixes

  1. 🪲 turnOn failed on AJAX reloads during editing #3127
  2. 🪲 Oqtane: Bugfix importing App Assets #3129
  3. 🪲 Web Farm Cache: Fix issue which occured on license uploads
  4. 🪲 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)

  1. ✅ Tutorials for new Pro mode / Quick-Ref
  2. ✅ Optimize build of 2sxc to use local config-files so it's easier for others to contribute @STV
  3. ✅ Improve JS build to make it easier for others to contribute
  4. ✅ Improve headers handling in Oqtane 4

Changes in 2sxc 16.07 LTS (2023-09-22)

  1. ✅ new TypeItem.Parent(...) - especially. .Parent(current: true) api #3173
  2. ✅ new parameters to the .Picture(...) incl. picClass, imgAttributes and picAttributes
  3. ✅ 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)

  1. TypedItem.Picture("Child.Property") path notation
  2. ✅ fix js minification of inpage.min.js
  3. ✅ Release all apps in the new typed mode
  4. ✅ Blazor .net 8 / Oqtane 5 support
  5. ✅ Improve file-upload to prevent files with ".." in the name
  6. ✅ Improve DataSource Caching and cache-flushing
  7. ✅ Add new (beta ⌛) feature for copyright management (Patron AdvancedCMS) to add copyright info to each image
  8. ✅ Extend SQL Database to store SysSettings and Guid on Attributes for future features
  9. 🐞 Fix minor issue with old .Code for older Razor base classes
  10. 🐞 Fix minor issue with edit-dialog in scenarios with multiple portal aliases
  11. 🐞 Fix minor issue with IMetadata.Children(...) / ...Child(...) #3217
  12. 🐞 Fix DataSource LanguageModeler #3219
  13. 🐞 Fix DataSource TreeMapper
  14. 🩸 Oqtane: Adam backend didn't always serialize all properties #3206