Table of Contents

All Changes in 2sxc and EAV v17

Version 17

2sxc v17.00 (2023-12-23)

  1. ✅ DNN: Require CodeDome C# 7.3 to be installed
  2. ✅ Docs infrastructure can now be multi-versioned
  3. ✅ Show app icon in admin UI
  4. ✅ Ctrl+Click on toolbar buttons to open in new tab
  5. ✅ Completely refactor internal APIs to do advanced work and save data
  6. ✅ Change UI to use Angular 17 (from Angular 14)
  7. ✅ Get intellisense to work in VS Code
    1. ✅ Work out best way to do this in VS Code
    2. ✅ Work out best way to hide non-public APIs
    3. ✅ Work out best way to include docs (xml files, nuget, etc.)
  8. ✅ Support C# 7.3 in DNN with warning if not installed
  9. ✅ System Capabilities Framework for tagging apps which need certain technologies/features
  10. ✅ Crazy new compiled typed shared code /ThisApp/Code - see Hot App Code
  11. ✅ New APIs on Typed Code
    1. IsPublished
    2. Publishing
    • Publishing.HasPublished, Publishing.HasUnpublished, Publishing.HasBoth
    • Publishing.GetPublished(), Publishing.GetUnpublished(), Publishing.GetOpposite()

2sxc v17.01 (2024-01-18)

  1. Moved almost all internal APIs in the ToSic.Sxc namespace to hidden locations #3189
  2. Marked a lot of internal APIs so that they won't appear in IntelliSense
  3. ♨️ HotBuild: Improved errors in Razor so the user can better find them #3246
  4. ♨️ HotBuild: Improved errors when compiling ThisApp #3247
  5. ♨️ HotBuild: Support Editions such as live and staging with auto-fallback #3248
  6. ♨️ Roslyn: Improve error if @inherits ends in semicolon #3245
  7. ♨️ HotBuild: Show all compiled types in insights
  8. ♨️ HotBuild: Minimize exact pre-included namespaces
  9. ♨️ HotBuild: Performance Improvements
  10. 🟣 Toolbars: Show hover on layout button after a delay with module-infos #3251

New Features / Important Improvements

  1. Kit.PageParameters now has new commands Toggle(...), Remove(...) and Filter(...) see docs #3241 #3242 #3243
  2. 🟣 Toolbars: Tweak Notes can now delay and linger #3250 docs
  3. Create-New File now shows templates for RazorTyped, CodeTyped and ApiTyped
  4. ✏️ App-Management UI now uses a left-menu (experimental)
  5. ✏️ Edit-UI: Boolean fields can now be toggled by clicking on the label
  6. 🖼️ Resizer: Improve handling of images in virtual-application folders

Bugfixes

  1. ITypedItem.Equals now works #3213
  2. Old Render APIs were broken, which affected News App 4.1.1 and others #3252
  3. Fix bug with UniqueKey which affected HotSpots App
  4. Various minor UI bugfixes related to the entity-picker and dropdowns

2sxc v17.01.04

Minor enhancements and bugfixes

  1. Image toolbar now shows resize specs 🌟 #3270
  2. Toolbar notes now support a format = html #3271
  3. Edit inner-content in accordions for non-website-admins #3234
  4. Old Razor base class - PageData didn't always work #3260
  5. HotBuild now respects additional assemblies from web.config #3272

2sxc v17.01.05

minor bugfixes l enhancements including

  1. dropdown pills fixed #3269
  2. REST Query API fails when used from "outside" #3274
  3. page picker in UI is broken in 17.01.04 #3276
  4. auto-serialized ITypedItem and IEnumerable<ITypedItem> #3277
  5. refactor an internal old API to init app-objects #3275
  6. HotBuild Performance Improvements (locking / caching)
  7. HotBuild improve detection when CS files inherit from ThisApp base 1. classes
  8. Internal Lookup System Performance Improvements
  9. internal work for the new Picker-UI system

2sxc v17.01.06

  1. Upgrade System.Data.SqlClient #3209
  2. TweakButton on dynamic code #3279
  3. Edit menu in Dnn fix #3280
  4. Bug with dropdowns #3281
  5. Export/Import App now includes hidden entities #3282
  6. Export/Import App now includes Attribute SysSettings #3283

2sxc v17.01.07

  1. ajax reload on details-pages eg. blog-post #3287
  2. SQL DataSource can't connect #sql #3285

2sxc v17.02 (2024-02-22)

  1. ✅ Improve infos about layout in toolbar
  2. ✅ Improve infos about image resizer in toolbar
  3. ✅ Improve Create New App Experience
    1. ✅ Create new app template
    2. ✅ Improve the new app wizard - allow selecting template
    3. ✅ Improve create-app code to use the new template
  4. ✅ Update Monaco to latest version
  5. ✅ Ability to change input config types/metadata - eg. skip @String when never needed
  6. ✅ Improve HotBuild
    1. ✅ Improve initial list of included assemblies and namespaces @STV
    2. ✅ Improve caching of information how to build/compile to improve speed
    3. ✅ Add support for sub-folders
    4. ✅ Support Editions
    5. ✅ Improve error messages on building the ThisCode folder
    6. ✅ Improve error messages when building Razor and C# using Roslyn
    7. ✅ Improve detection so that build is locking (prevent multiple builds on high-load)
    8. ✅ Create system to generate models
    9. ✅ Provide special UI to build the code and debug Copilot
    10. ✅ Switch to AppCode ThisApp
    11. ✅ Provide final place for base type
      1. Custom.Data.CustomItem base class
      2. ✅ GPS data
  7. ✅ fix/improve date picker
  8. ✅ Ability to share field configurations
    1. ✅ Custom config inherit from multiple sources for keeping the Label
    2. ✅ Preserve config on export/import

https://github.com/2sic/2sxc/releases/tag/v17.02.00

2sxc v17.03 (2024-03-04)

  1. ✅ New Pickers released with a lot of features, incl. Sources, custom labels, help, tooltips, multi-select and much more!
  2. ✅ Ability to install recommended apps in a later step!
  3. ✅ New typed razor RazorTyped<TModel>
  4. ✅ New typed App using IAppTyped<TSettings, TResources>
  5. ✅ Publish As<Type> and AsList<Type> API
  6. ✅ Publish App.Data.GetAll<TModel>() and App.Data.GetOne<TModel>(id) APIs
  7. ✅ New Custom.Data.CustomItem base class with GPS data, As<Type> and AsList<Type> API
  8. ✅ improve App_Data/app.json schema to include editions for Copilot
  9. ✅ Add template app Basic and Empty
  10. ✅ Intellisense: Find way to link to the official docs from inside the help

2sxc v17.04 (2024-03-11)

Improvements

  1. MyView.Resources added to complement existing MyView.Settings #3315
  2. ITypedItem.Img(...) added to complement exitsing ITypedItem.Picture(...) #3324
  3. Dnn improve Roslyn build performance in many cases from ca. 2.5 seconds to 0.5 seconds #3322
  4. Query: Improve $select OData parameter
  5. REST API - add $select OData Parameter #3319
  6. Razor / Typed Code: add a Customize helper ojbect #3316
  7. Admin UI - Data Scopes now show count
  8. Add Razor compile code help for more common problem such as accessing typed-items dynamically
  9. Improve razor compile help - show errors before warnings
  10. Picker - auto extract additional fields to retrieve based on placeholders in Label / Help texts etc.

Generate Data Models Improvements

  1. Include Scope name
  2. Include content-types in Configuration scope
  3. CustomItem - implement == and != operators to use wrapper equality
  4. Lots of docs for custom data
  5. app.json editions configuration, add isDefault

Bugfixes

  1. UI Date Picker - fix but with UTC offset #3321
  2. UI Page Picker - fix, was broken in 17.03.00 #3320
  3. Calling Query using JS missed the Id property #3325
  4. Admin: state of the DateTime Show-Time toggle didn't properly get persisted #3318

2sxc v17.05 (2024-03-25)

We believe this is stable, but ask the community to do in-depth testing so we can release an LTS

Highlights

  1. Improved Code-Generator to be in a standalone DLL ToSic.Sxc.Code.Generate
  2. Improved Code-Generator to generate Razor, Code and WebApi base classes

Enhancements

  1. Impove image-resize tooltip #3329
  2. $2sxc JS used in modules which are rendered into Dnn themes #3333
  3. Improve logging of parameters of DataSources (eg. Value-Filter DS)
  4. Prepare for Oqtane 5 SSR
  5. Improve architecture for generating App-objects in the background

Bugs fixed

  1. various admin and replace-operations on inner-content #3299
  2. fix quickE when selecting content-blocks #3317
  3. Token templates - fix some toolbars #3328
  4. Fix issue with Oqtane urls
  5. Fix issue with Oqtane WebApis which affected Blog RSS feed

2sxc v17.06 LTS (2024-03-28)

The first LTS (Long-Term-Stable) Release of 2sxc 17.

Easter LTS Release

  1. ✅ Prepare for Oqtane SSR (Server-Side Rendering)
  2. ✅ Provide Code Generator for Content Types, Razor and Services
  3. ✅ Improve discoverability of REST APIs
  4. ✅ Document new Pro Typed mode
  5. ✅ Document new strong-typed mode
  6. ✅ Auto-Install more apps from catalog - even after some have already been installed - ca. 1d
    1. ✅ Feature to tell new auto-installer what apps are already installed
    2. ✅ App-Auto-Installer UI to add-install apps later on
  7. ✅ LTS

Bugfixes

  • When accessing an App through another app (eg first going to Apps-Management) it show the data of the original app
  • Opening features in Apps-Management didn't work reliably
  • Edit-UI Picker / Dropdown code was cleaned up
  • Copilot Razor Generator ready to use
  • Copilot Service generator ready to use
  • Copilot WebApi generator ready to use
  • Copilot previously failed if the AppCode folder was missing
  • Fix to a data-caching issue in 17.05 (this was important)

2sxc v17.07 (2024-05-04)

published/blogged:

  1. ✅/✅ 2sxc 17.07
  2. ✅/✅ 2shine 5.3 (May 4th)
  3. ✅/✅ Content App 17.07 (May 6th)
  4. ✅/✅ Mobius Form Builder 06.00 for 2sxc 17.07 (May 7th)
  5. ✅/✅ Release all apps as typed (May 8th)

2sxc v17.08 (2024-05-16)

  1. ✅ WebApi in AppCode
  2. ✅ DataSources in AppCode
  3. ITemplateService
  4. ✅ Add CmsContext.Block and CmsContext.Module.Block as well as Block.Guid
  5. ✅ Cache Service internal
  6. ✅ Switch Edition UI
  7. ✅ Switch Edition Permissions for non-super users
  8. ✅ Update Image Resizer
  9. ✅ Re-Release another LTS ca. 17.09

Planned Removals for 2sxc v17

Planned Removals for 2sxc v17

For 2sxc 17 we plan to remove some very old APIs. The process is as follows:

  1. Mark the API as deprecated in the code
  2. Add internal code which warns the admin that the App is using deprecated code
  3. Provide guidance here how to resolve
  4. Make sure the warnings have been around for at least 6 months
  5. Remove the code on the next major release

For v17 we plan to remove some very old APIs, which we believe are probably not even used any more. This is the list:

  • The old namespace ToSic.SexyContent.Interfaces.IApp and all related code
    We believe this is probably not used at all, since it's probably only ever used to access App.Configuration which is dynamic when using this interface, but a normal object with typed properties when using the normal ToSic.Sxc.Apps.IApp interface.

Guide to Fixing Issues

Fixing SexyContent.Interfaces.IApp removal

Background

A long time ago 2sxc was called SexyContent and we used the namespace ToSic.SexyContent.Interfaces for various things. Ca. 2014, we decided to rename it to 2sxc and use a ToSic.Sxc namespace instead. In addition to that, we created a clearer namespace structure.

Am I Affected?

Most code does not explicitly use namespaces, and if your code is newer than 2016, you are probably not affected.

But if you have any code which uses the namespace ToSic.SexyContent in your Razor or C# code you are affected.

This is especially true if you have code such as:

using SexyContent.Interfaces;
IApp app = App;
var version = app.Configuration.Version;

How to Fix

It's difficult to give you an exact guideline, because we don't know what your code does. But in most cases, you'll just be working with the current App object which is typed as IApp. So in most cases, you don't need to specify the type at all, just use something like:

var app = App;
var version = App.Configuration.Get("Version");