Skip to content

Releases: 2sic/2sxc

2sxc v21.05

11 Mar 13:37
82a0ca8

Choose a tag to compare

Minor update/enhancements/bugfixes

  1. 🧑🏼‍💻 VS Code Intellisense - found way to get it to work with latest C# DevKit and improve hints/warnings dramatically
  2. 🐞 Edit UI: In some cases closing a dialog kept the overlay, so the page needed F5 (regression, v21.03)
  3. 📖 Lots of docs
  4. 🎓 lots of tutorials

2sxc 21.04

04 Mar 14:30
0bc3741

Choose a tag to compare

2sxc v21.04.00 (2026-03-04)

General Enhancements

  1. ⚙️ Admin: Ability to click on an entity to see it's relationships ⭐
  2. ✏️ Edit UI: Ability to always hide HTML button from normal users (you change the default per system/site) (sponsored)
  3. ✏️ Edit UI: Ability to show the HTML button for super-users in Debug mode (sponsored)

Minor

  1. 🧑🏼‍💻 Code Generator start with auto-generate on changes (WIP)
  2. 🧑🏼‍💻 VS Coding experience, work on making it compatible with latest C# in VS Code

Bugfixes

  1. 🐞 App Export was broken, missing some data (regression, v21.03)
  2. 🐞 Visual Query can't edit newly created queries
  3. 🐞 Copilot - was broken in v21.03
  4. 🪲 Minor visual query certain edge cases
  5. 🪲 Minor admin shared fields - definitions were not showing properly
  6. 🪲 Minor when in the list-sort dialog, titles from HTML looked off (drop html, ellipsis)

Internal and Code Hygiene

  1. Rework internal DataBuilder to DataAssembler
  2. 🌪️ DataSources: New internal DataSource System.GetEntities
  3. Internal object structure for permission-check, now uses new IServiceWithSetup
  4. Chore: update FAB components to latest version
  5. 🌪️ DataSources: Rework public Linking API, improve the IDataService with CreateLink() and CombineLinks()
  6. 📖 Improve docs - internal docs + start improving section C# Razor

2sxc 21.03

23 Feb 17:17
584d7c7

Choose a tag to compare

General Enhancements

  1. 🩸 Oqtane: Multi-Tenant support still being enhanced (previous release had some upgrade bugs.)
  2. 🗑️ Recycle bin done
  3. 🧑🏼‍💻 ITypedApi now support site-mode with page/module, for modules which are not 2sxc modules (DNN)
  4. 💃🏼 Models: Improve naming etc. (WIP)

Minor

  1. 🧑🏼‍💻 Code Generator minor enhancements

Bugfixes

  1. 🐞 Fix Polymorphism in Admin UI (Views), broken in v21.01 / v21.02

Internal and Code Hygiene

  1. 📖 Improve docs - better indicators for WIP code
  2. Backend Edit/Save - make calls async
  3. Improve internal docs about eav-ui mechanisms

2sxc 21.02

18 Feb 16:54
1d87e8b

Choose a tag to compare

2sxc v21.02.00 (2026-02-18)

General Enhancements

  1. 🩸 Oqtane: Multi-Tenant support still being enhanced (previous release had some upgrade bugs.)
  2. 📖 Improve docs - especially the Contribute to Code section

💲 OData (Major Updates)

  1. 💲 OData: Introduce $casing query option to control casing of returned JSON properties ($casing=camel)
  2. 💲 OData: Make sure that OData parameters on a query only apply to the primary Default stream.
  3. 💲 OData: Introduce ability to specify other parameters by stream, so that $select applies to the Default stream, but Books$select applies to the Books stream. (BETA, may still change)
  4. 💲 OData: Reorg code structure (internal)

🌪️ Data Sources and Visual Query (Major Updates)

  1. 🌪️ Create generic SysData DataSource to provide quick access to all kinds of data to the UI.
  2. 🌪️ Introduce Confidentiality model for data sources, so that SysData doesn't leak data to the UI which the user shouldn't see.
  3. 🌪️ Create query System.SysData to provide access to SysData in queries and REST APIs.
  4. 🌪️ Introduce * (internal) wildcard Visual Query connections to pass all streams from one DataSource to another without having to specify them all. This is especially useful for SysData which can have many streams.
  5. 🌪️ ✏️ Improve VisualQuery UI to properly support * wildcard connections, and to show them in the UI with a different style to indicate that they are dynamic.
  6. 🌪️ ✏️ Improve VisualQuery UI to show tabs by stream name, making it easier to see the results

🧑🏼‍💻 Code generator / Copilot (Major Updates)

  1. 🧑🏼‍💻 Improve log to indicate which CodeGenerator created the changes
  2. 🧑🏼‍💻 🌪️ Create DataSources for use with SysData to provide CodeGenerators and Editions
  3. 🧑🏼‍💻 ✏️ Enhance code-generation configurations to specify Edition
  4. 🧑🏼‍💻 ✏️ Enhance code-generation configuration to specify "generate all" vs. "generate specific content-types"
  5. 🧑🏼‍💻 ✏️ Enhance UI to manage code-generation configurations

💃🏼 Models

  1. Introduce TryGetMetadata<T> to get metadata of a content-type, which is especially useful for code-generation scenarios where you want to check if a content-type exists and get its metadata without throwing an exception.
  2. Improve Model lookup to support interfaces which can define which class/record to use
  3. Introduce the INoteModel to access Notes Metadata on items/pages/modules etc.

Minor

(none)

Bugfixes

  1. 🐞 Fix UI to configure Pickers - problem was with the Attributes DataSource.
  2. 🐞 Fix Polymorphism in Admin UI (Views), broken in v21.01

Internal and Code Hygiene

  1. 🧑🏼‍💻 EAV-UI: Introduce a generic SysData service to easily work with SysData endpoints
  2. 🌪️ Move various classes related to DataSource Queries to a better namespace
  3. 🌪️ Visual Query: Refactor models, simplify
  4. 🌪️ Improve internal DataSource construction, to use our new standardized Setup(options) mechanism
  5. 🔌 API: Move Polymorphism info to use Datasources instead of APIs
  6. 🔌 API: Move RecycleBin to use DataSources instead of APIs

Experimental / WIP

  1. Introduce IDataProcessor to customize how data gets stored / loaded
  2. Introduce DataStorageDecorator to specify how ContentTypes get processed
    1. Introduce a max-items limit to prevent accidental creation of too many items (for some content types, only 1 is allowed)
    2. 🌪️ Create DataSource to show all possible DataProcessors
    3. Allow configuring a preferred DataProcessor for a content-type, so that it gets used automatically when working with that content-type in the UI
  3. Implement DataProcessing for pre-load and pre-save
  4. Create a DataProcessor which restricts any editing on certain content-types to host-users only and test in on permissions.

2sxc 21.01 with Oqtane multi-tenant support

03 Feb 20:17
6c3d6e1

Choose a tag to compare

Enhancements

  1. 🩸 Oqtane: Multi-Tenant support should work now! (MAJOR)
  2. 🧑🏼‍💻 Code generator (Copilot) - now supports saved configurations and many options such as namespace, prefix/suffix etc.
  3. 🧑🏼‍💻 Internal rework of models which provide a typed API for configuration Entities
  4. 🧑🏼‍💻 Special new (BETA) API to easily convert entities to these lightweight models in the ToSic.Eav.Models namespace
  5. 🧩 Extensions: Published 3 extensions already https://2sxc.org/en/apps/type/app-extension
  6. 🧩 Extensions: extensive docs for extensions https://docs.2sxc.org/extensions/app-extensions/index.html

Minor

  1. 🧩 Extensions now nicely support C# naming for the AppCode folder, while using kebap-case (JS-Style) in the /extensions folder

Bugfixes

  1. ✏️ Edit UI: tooltip positioning bugfix
  2. 🧩 Extensions: various minor fixes

Internal and Code Hygiene

  1. Introduce a Runtime-Cache-Key which supports multi-tenancy for 🩸 Oqtane and is also used in AppCode caches
    ☢️ Dnn uses AppId as part of the cache key, but 🩸 Oqtane uses t##-z###-a#####"
  2. Improve various C# unit-tests
  3. Improve internal APIs around the Engine
  4. Improve DI-startup XDocs, place all in similar namespaces and add docs
  5. Simplify differences around .net vs. .net Framework regarding download files HttpResponseMessage
  6. User record classes for service dependencies to simplify code and make it more readable

2sxc 21.00.02 - minor bugfixes

12 Jan 10:21
4e4fb34

Choose a tag to compare

Mainly a bugfix related to DNN 10.02.01

Bugfixes

  1. ☢️ Dnn: Workaround for bug in DNN 10.02.01 related to assets (js/css) because of Dnn changes in Client Dependency Management
  2. 🧩 Extensions: fix edit/add extensions configuration

Internal and Code Hygiene

  1. Prepare AppState to have a RuntimeKey for unique identification at runtime; future feature in 🩸 Oqtane
  2. ☢️ Dnn: Minor changes to logging during installation

2sxc v21 - AppExtensions, OData and more

23 Dec 23:00
5d1124b

Choose a tag to compare

2sxc 20.00.09 MoT - preparing for v21

10 Dec 19:21
74d55e4

Choose a tag to compare

2sxc v20 cleans up a lot of history, so it has breaking changes.
These mainly affect old code, so they should only affect DNN installations which have old code on it, or used old samples to develop Razor.

Read about it in the blog: https://go.2sxc.org/v20

See also the docs with all the changes and breaking changes

v20.00.09 has a lot of changes, enhancements and more, but most of it is hidden in the background, for the upcoming v21 release.

Possibly Breaking Changes

  1. Global extension fields (for the edit UI) are now in /extensions and not system any more.
    This may affect you if you were loading the GPS/WYSIWYG manually, or had custom extensions in the old path.

Major Enhancements

  1. 🧩 App Extensions: Lots of enhancements
    1. 🧩 Feature to edit extension definition and store in a JSON in the extensions App_Data
    2. 🧩 System can differentiate between installed extensions and extensions being developed in an App, and provide different actions
    3. 🧩 Feature to export an extension incl. extensive infos, file fingerprints, versions, releases
    4. 🧩 Feature to install an extension incl. drag & drop
    5. 🧩 Feature to check if an installed extension was modified (for safer upgrading)
    6. 🧩 Feature to delete an installed extension
    7. 🧩 Extension Settings and language Resources
    8. 🧩 Extensions can now be installed in multiple editions
    9. 🧩 Extensions with input-types and multiple editions will load staging if user is developer/host
    10. 🧩 Extensions have a lot of properties and links shown in the quick overview
  2. ☢️ Stabilizing DNN CSHTML compiler caching and PDB preservation for better debugging
  3. 🌪️ Queries: Published many more System queries which were previously secret, such as System.ContentTypes, etc. see
  4. 🥫 DB: Increase SQL timeout because sometimes SQL was sleeping and causing timeouts
  5. ❤️‍🔥 OData Support WIP
    1. $select support
    2. $filter support for basic filters (eq, ne, gt, lt, ge, le, startsWith, not startsWith, contains, not contains)
    3. $orderby support
  6. 💃🏼 Major: Template Service can now create templated entities.
  7. 🧑🏼‍✈️ Data Copilot: Ability to configure in detail what should be generated and how (specify alternate folders, namespaces, etc.)

Minor Enhancements

  1. 🔳 Toolbar: Ability to combine toolbar on a entity-field with Copy to add copies of data to a list
  2. ✏️🔳 Toolbar & Edit UI: Introduce UiFields() on toolbar button Tweak
  3. ⚙️ Admin UI: Show more info about fields (such as read-only, required etc. in addition to has-formula)
  4. 🌍 Language: Restore Translate All/Link All feature (had been gone for more than 1 year and nobody noticed)
  5. ✏️ Edit UI: Improve paste-as-text in WYSIWYG
  6. 🖼️ Improve Image Service so it knows about Bootstrap if added through Kit.Page.Activate(...) (otherwise image resize/class is off when used in a skin without bootstrap)
  7. 🌪️ DataSource: ContentType DataSource can now accept Scope of * to search through all scopes
  8. Minor: Add Recaptcha Score field to settings
  9. Minor: Add loading indicators in various UIs to improve UX

Bugfixes

  1. 🐞 Improve locking / unlocking AppCode.dll which is compiled on the fly
  2. 🐞 Fix AppCode reporting compilation errors (were disabled in a previous release)
  3. 🐞 Fix languages returned by serialized entities in WebAPIs (some scenarios resulted in wrong language being returned)
  4. 🐞 Fix remove a data-source in a VisualQuery
  5. 🪲 🌍 Edit UI: Translate buttons showed up in the primary language when there was only 1 language
  6. 🪲 🌍 Edit UI: Translate buttons blocked access to some other buttons on entity-pickers
  7. 🪲 ☢️ DNN: When code in DNN triggered an HTTP Redirect, it previously logged an exception in DNN
  8. 🪲 Minor: fix time zone info in edit-entity-history
  9. 🪲 Minor: fix colors of inner-content toolbar
  10. 🪲 Minor: fix / enhance Tokens, so multiple fallback-tokens work (previously only 1 was possible)

Internal Changes

  1. Experimenting with delayed loading of AppCode dll because it may cause issues with anti-virus locking the file at first compile
  2. Edit UI Improved SASS to latest standards
  3. API renaming: shorten noParameterOrder to npo as the type already indicates what it is
  4. Maintenance: get rid of obsolete warning IHostingEnvironment
  5. Maintenance: Update xng-breadcrumb to latest version
  6. Maintenance: Update various npm packages to latest versions

2sxc 20.00.08 MoT - minor fixes

23 Sep 05:57
3ddafd3

Choose a tag to compare

2sxc v20 cleans up a lot of history, so it has breaking changes.
These mainly affect old code, so they should only affect DNN installations which have old code on it, or used old samples to develop Razor.

Read about it in the blog: https://go.2sxc.org/v20

See also the docs with all the changes and breaking changes

v20.00.08 is mainly bug fixes

2sxc 20.00.07 MoT - minor fixes

16 Sep 17:00
2e47d48

Choose a tag to compare

2sxc v20 cleans up a lot of history, so it has breaking changes.
These mainly affect old code, so they should only affect DNN installations which have old code on it, or used old samples to develop Razor.

Read about it in the blog: https://go.2sxc.org/v20

See also the docs with all the changes and breaking changes

v20.00.07 is mainly bug fixes

  1. Correct spacing between input fields #3685
  2. GPS Picker creates incorrect json #3686
  3. Admin UI for fields has wrong title #3688
  4. Bug when creating new app from template #3689
  5. Bug accessing data in picker-dropdown if no view was selected #3687
  6. DNN: WebApi calls get wrong current-language