All Changes in 2sxc and EAV v17
Version 17
2sxc v17.00 (2023-12-23)
- ✅ DNN: Require CodeDome C# 7.3 to be installed
- ✅ Docs infrastructure can now be multi-versioned
- ✅ Show app icon in admin UI
- ✅ Ctrl+Click on toolbar buttons to open in new tab
- ✅ Completely refactor internal APIs to do advanced work and save data
- ✅ Change UI to use Angular 17 (from Angular 14)
- ✅ Get intellisense to work in VS Code
- ✅ Work out best way to do this in VS Code
- ✅ Work out best way to hide non-public APIs
- ✅ Work out best way to include docs (xml files, nuget, etc.)
- ✅ Support C# 7.3 in DNN with warning if not installed
- ✅ System Capabilities Framework for tagging apps which need certain technologies/features
- ✅ Crazy new compiled typed shared code
/ThisApp/Code
- see Hot App Code - ✅ New APIs on Typed Code
IsPublished
Publishing
Publishing.HasPublished
,Publishing.HasUnpublished
,Publishing.HasBoth
Publishing.GetPublished()
,Publishing.GetUnpublished()
,Publishing.GetOpposite()
2sxc v17.01 (2024-01-18)
- Moved almost all internal APIs in the ToSic.Sxc namespace to hidden locations #3189
- Marked a lot of internal APIs so that they won't appear in IntelliSense
- ♨️ HotBuild: Improved errors in Razor so the user can better find them #3246
- ♨️ HotBuild: Improved errors when compiling ThisApp #3247
- ♨️ HotBuild: Support Editions such as
live
andstaging
with auto-fallback #3248 - ♨️ Roslyn: Improve error if
@inherits
ends in semicolon #3245 - ♨️ HotBuild: Show all compiled types in insights
- ♨️ HotBuild: Minimize exact pre-included namespaces
- ♨️ HotBuild: Performance Improvements
- 🟣 Toolbars: Show hover on
layout
button after a delay with module-infos #3251
New Features / Important Improvements
Kit.PageParameters
now has new commandsToggle(...)
,Remove(...)
andFilter(...)
see docs #3241 #3242 #3243- 🟣 Toolbars: Tweak Notes can now
delay
andlinger
#3250 docs - Create-New File now shows templates for
RazorTyped
,CodeTyped
and ApiTyped - ✏️ App-Management UI now uses a left-menu (experimental)
- ✏️ Edit-UI: Boolean fields can now be toggled by clicking on the label
- 🖼️ Resizer: Improve handling of images in virtual-application folders
Bugfixes
ITypedItem.Equals
now works #3213- Old Render APIs were broken, which affected News App 4.1.1 and others #3252
- Fix bug with
UniqueKey
which affected HotSpots App - Various minor UI bugfixes related to the entity-picker and dropdowns
2sxc v17.01.04
Minor enhancements and bugfixes
- Image toolbar now shows resize specs 🌟 #3270
- Toolbar notes now support a
format
=html
#3271 - Edit inner-content in accordions for non-website-admins #3234
- Old Razor base class -
PageData
didn't always work #3260 - HotBuild now respects additional assemblies from web.config #3272
2sxc v17.01.05
minor bugfixes l enhancements including
- dropdown pills fixed #3269
- REST Query API fails when used from "outside" #3274
- page picker in UI is broken in 17.01.04 #3276
- auto-serialized
ITypedItem
andIEnumerable<ITypedItem>
#3277 - refactor an internal old API to init app-objects #3275
- HotBuild Performance Improvements (locking / caching)
- HotBuild improve detection when CS files inherit from ThisApp base 1. classes
- Internal Lookup System Performance Improvements
- internal work for the new Picker-UI system
2sxc v17.01.06
- Upgrade System.Data.SqlClient #3209
- TweakButton on dynamic code #3279
- Edit menu in Dnn fix #3280
- Bug with dropdowns #3281
- Export/Import App now includes hidden entities #3282
- Export/Import App now includes Attribute SysSettings #3283
2sxc v17.01.07
- ajax reload on details-pages eg. blog-post #3287
- SQL DataSource can't connect #sql #3285
2sxc v17.02 (2024-02-22)
- ✅ Improve infos about layout in toolbar
- ✅ Improve infos about image resizer in toolbar
- ✅ Improve Create New App Experience
- ✅ Create new app template
- ✅ Improve the new app wizard - allow selecting template
- ✅ Improve create-app code to use the new template
- ✅ Update Monaco to latest version
- ✅ Ability to change input config types/metadata - eg. skip
@String
when never needed - ✅ Improve HotBuild
- ✅ Improve initial list of included assemblies and namespaces @STV
- ✅ Improve caching of information how to build/compile to improve speed
- ✅ Add support for sub-folders
- ✅ Support Editions
- ✅ Improve error messages on building the ThisCode folder
- ✅ Improve error messages when building Razor and C# using Roslyn
- ✅ Improve detection so that build is locking (prevent multiple builds on high-load)
- ✅ Create system to generate models
- ✅ Provide special UI to build the code and debug Copilot
- ✅ Switch to
AppCode
ThisApp - ✅ Provide final place for base type
- ✅
Custom.Data.CustomItem
base class - ✅ GPS data
- ✅
- ✅ fix/improve date picker
- ✅ Ability to share field configurations
- ✅ Custom config inherit from multiple sources for keeping the Label
- ✅ Preserve config on export/import
https://github.com/2sic/2sxc/releases/tag/v17.02.00
2sxc v17.03 (2024-03-04)
- ✅ New Pickers released with a lot of features, incl. Sources, custom labels, help, tooltips, multi-select and much more!
- ✅ Ability to install recommended apps in a later step!
- ✅ New typed razor
RazorTyped<TModel>
- ✅ New typed App using
IAppTyped<TSettings, TResources>
- ✅ Publish
As<Type>
andAsList<Type>
API - ✅ Publish
App.Data.GetAll<TModel>()
andApp.Data.GetOne<TModel>(id)
APIs - ✅ New
Custom.Data.CustomItem
base class with GPS data,As<Type>
andAsList<Type>
API - ✅ improve
App_Data/app.json
schema to includeeditions
for Copilot - ✅ Add template app
Basic
andEmpty
- ✅ Intellisense: Find way to link to the official docs from inside the help
2sxc v17.04 (2024-03-11)
Improvements
MyView.Resources
added to complement existingMyView.Settings
#3315ITypedItem.Img(...)
added to complement exitsingITypedItem.Picture(...)
#3324- Dnn improve Roslyn build performance in many cases from ca. 2.5 seconds to 0.5 seconds #3322
- Query: Improve
$select
OData parameter - REST API - add
$select
OData Parameter #3319 - Razor / Typed Code: add a
Customize
helper ojbect #3316 - Admin UI - Data Scopes now show count
- Add Razor compile code help for more common problem such as accessing typed-items dynamically
- Improve razor compile help - show errors before warnings
- Picker - auto extract additional fields to retrieve based on placeholders in Label / Help texts etc.
Generate Data Models Improvements
- Include Scope name
- Include content-types in
Configuration
scope CustomItem
- implement==
and!=
operators to use wrapper equality- Lots of docs for custom data
app.json
editions configuration, addisDefault
Bugfixes
- UI Date Picker - fix but with UTC offset #3321
- UI Page Picker - fix, was broken in 17.03.00 #3320
- Calling Query using JS missed the
Id
property #3325 - 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
- Improved Code-Generator to be in a standalone DLL
ToSic.Sxc.Code.Generate
- Improved Code-Generator to generate Razor, Code and WebApi base classes
Enhancements
- Impove image-resize tooltip #3329
- $2sxc JS used in modules which are rendered into Dnn themes #3333
- Improve logging of parameters of DataSources (eg. Value-Filter DS)
- Prepare for Oqtane 5 SSR
- Improve architecture for generating App-objects in the background
Bugs fixed
- various admin and replace-operations on inner-content #3299
- fix quickE when selecting content-blocks #3317
- Token templates - fix some toolbars #3328
- Fix issue with Oqtane urls
- 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
- ✅ Prepare for Oqtane SSR (Server-Side Rendering)
- ✅ Provide Code Generator for Content Types, Razor and Services
- ✅ Improve discoverability of REST APIs
- ✅ Document new
ProTyped mode - ✅ Document new strong-typed mode
- ✅ Auto-Install more apps from catalog - even after some have already been installed - ca. 1d
- ✅ Feature to tell new auto-installer what apps are already installed
- ✅ App-Auto-Installer UI to add-install apps later on
- ✅ 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:
- ✅/✅ 2sxc 17.07
- ✅/✅ 2shine 5.3 (May 4th)
- ✅/✅ Content App 17.07 (May 6th)
- ✅/✅ Mobius Form Builder 06.00 for 2sxc 17.07 (May 7th)
- ✅/✅ Release all apps as typed (May 8th)
2sxc v17.08 (2024-05-16)
- ✅ WebApi in AppCode
- ✅ DataSources in AppCode
- ✅
ITemplateService
- ✅ Add
CmsContext.Block
andCmsContext.Module.Block
as well asBlock.Guid
- ✅ Cache Service internal
- ✅ Switch Edition UI
- ✅ Switch Edition Permissions for non-super users
- ✅ Update Image Resizer
- ✅ 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:
- Mark the API as deprecated in the code
- Add internal code which warns the admin that the App is using deprecated code
- Provide guidance here how to resolve
- Make sure the warnings have been around for at least 6 months
- 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 accessApp.Configuration
which isdynamic
when using this interface, but a normal object with typed properties when using the normalToSic.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");