Skip to content

Releases: 2sic/2sxc

v17.01.02 stability

24 Jan 08:28
9a53500
Compare
Choose a tag to compare

Various minor fixes for bugs which appeared on v17.01.01

v17.01.01 stability

23 Jan 20:32
87e30ff
Compare
Choose a tag to compare

Various minor fixes for bugs which appeared on v17.01.00

It also has a lot of internal stuff done for HotBuild, but the features are not yet final, so they are not communicated here.

v17.01.00 with better Intellisense

18 Jan 07:33
4ecde20
Compare
Choose a tag to compare

Major Improvements in HotBuild & IntelliSense

Important

Because we moved a lot of internal APIs to prevent them appearing in IntelliSense, there is a risk that you may have used them, in which case you would run into a problem. Best contact @iJungleboy for this.

Highlight 1: IntelliSense and HotBuild Improvements

  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

What's Changed

Full Changelog: v17.00.00...v17.01.00

2sxc 17 with Loads of Coding Enhancements

22 Dec 16:06
01e6fe5
Compare
Choose a tag to compare

2sxc v17 with Lots of Coding Enhancements

such as

  1. ©️ Work with Roslyn Compiler in Dnn and Oqtane
  2. ©️ Support C# 8 in Dnn (previously C# 5) and C# 12 in Oqtane
  3. ℹ️ Intellisense in VS Code
  4. ♨️ HotBuild Live Compiled App-Code to use typed helpers in Razor
  5. 🔌New cool APIs to make life easier

Intellisense ℹ️

  1. ℹ️ Developed best practice to enable IntelliSense in VS Code
  2. ℹ️ Cleaned up a lot of internal APIs to prevent them from showing up in intellisense (still WIP)
  3. ℹ️ Include XML for the most relevant parts in the build, so intellisense works with help texts

HotBuild Compile System ♨️

  1. ♨️ New system to compile all files in the folder /ThisApp/Code into a DLL on the fly
  2. ♨️ System to detect this and provide the latest DLL to all Razor and C# files which have using ThisApp.Code
  3. ♨️ Feature to provide code-context to helpers created using new Helper(this) vs. previously using CreateInstance("Helper.cs")

API Enhancements 🔌

  1. 🔌 The Toolbar Service has a new method to start an empty toolbar with only an edit button Kit.Toolbar.Edit(...)
  2. 🔌 The protecting parameter noParamOrder used to be a string, now it's a special type, so that VS-Code can detect improper use
  3. 🔌 The view object CmsContext.View or MyView now has a Settings property which retrieves the view settings
  4. 🔌 The ITypedItem.Html(..., tweak: x => x.Input(v => v.Replace(...))) allows Html to be rendered in it's perfection, while still manipulating the data (eg. to replace placeholders)
  5. 🔌 The ITypedItem - usually MyItem has a new property IsPublished to determine if it is published
  6. 🔌 The ITypedItem - usually MyItem has a new property Publishing which contains a lot of additional information and access to the draft/published counterpart
  7. 🔌 The toolbar API to create an info button can now specify a link-target
  8. 🔌 The App object now has GetContentTypes() and GetContentType(name) methods
  9. 🔌 IEntity now has an official Get(...) and Get<type>(...) method to match the APIs of other data objects

Minor UX Enhancements 🎇

  1. 🎇 The toolbar buttons now work with Ctrl+Click to open new tabs
  2. 🎇 App Admin UI now shows the App Icon to make life easier when you have many admins in many tabs
  3. 🎇 Colors of the toolbar updated to new look

Special to Dnn ☢️

  1. ☢️ After installation, 2sxc will require the admin to install the CodeDom library - see https://go.2sxc.org/dnn-roslyn
  2. ☢️ Include Microsoft.Bcl.HashCode.dll in the package, to ensure CSVHelper can generate CSV (not just read)
  3. ☢️ To enable this, we created a system to detect the language capabilities of the installed compiler

Special to Oqtane 🩸

(no special Oqtane changes)

Bugfixes

  1. 🪲 App.Data.Create(...) and App.Data.Update(...) had some bugs

Internal Enhancements

  1. Refactored how the AppState is built, and made almost all the APIs internal
  2. Crazy refactoring of the internal APIs Eav.Apps to be way simpler/better
  3. Created system to inject more features into Insights using Providers
  4. Enhanced the UI Field-Mask to support the tokes [ID] and [GUID]
  5. Created a mechanism where system-features such as C#8 or Blazor can be detected just like enabled/disabled features.
  6. Enhanced Apps so they can include Require configurations which will be checked before the App is shown - to indicate that they need a special feature or license.
  7. Ability to create ContentTypes for Input-Fields which use a GUID instead of the special @string-subtype naming convention
  8. Docs are now multi-version, so archived versions will remain online indefinitely

Possible Breaking Changes 💔

  1. 💔 The protecting parameter noParamOrder used to be a string, now it's a special type, so that VS-Code can detect improper use.
    In very rare cases it could be that you actually set the parameter (without effect) - this would now throw a type-exception.
  2. 💔 The toolbar button for info links now opens in current window by default, but can be changed to open in any window. Previously it always opened in a new window.
  3. 💔 A previously internal object App.AppState may have been used to get Content Type definitions. We now created official commands for this on the App object and removed this AppState object. If you were using it, you will have to update the code.

Merry X-Mas!

2sxc 16.09 for Oqtane 5 / .net 8

22 Nov 15:37
Compare
Choose a tag to compare

Brief release for Oqtane 5 (.net 8) and some minor bugfixes.

It's very similar to 16.07 LTS, but if you want LTS, use that version instead (unless you need Oqtane 5).

Changes / Highlights

  1. ✅ Blazor .net 8 / Oqtane 5 support
  2. TypedItem.Picture("Child.Property") path notation
  3. ✅ fix js minification of inpage.min.js #3200
  4. ✅ Release all apps in the new typed mode
  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

2sxc 16.07 LTS

22 Sep 13:29
514e14d
Compare
Choose a tag to compare

Long Term Stable Release 2sxc 16.07

(see LTS Policy)

This release is primarily the official release of the new Typed Code system.

Otherwise it's just a few minor features/bugs incl.

  1. new .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

Enjoy 💖

Minor bugfixes / enhancements

20 Sep 09:07
514e14d
Compare
Choose a tag to compare

Features

  1. Major: Redesign build/deployment system https://go.2sxc.org/build
  2. TurnOn - ability to skip adding duplicates #3170
  3. ITypedItem - Parent() to get parent of the item which had created it using Child(...) or Children(...) #3173

Bugs

  1. Issue creating custom WYSIWYG #3137
  2. Oqtane: Open-Graph headers #3172
  3. Admin UI: minor js-error in console #3174
  4. LightSpeed: performance issue when hosted from a network storage #3175

Minor

  1. Improve Insights logging - shorten long log-paths

Minor stabilization release

07 Sep 22:06
c230ec3
Compare
Choose a tag to compare

Minor enhancements and bugfixes, incl.

  1. Feature to allow GetCode() to use absolute path in app #3164
  2. MyModel.Code(...) to forward objects created from .cs files #3165
  3. Issue with attributes on RazorBlade not always having spaces around them
  4. Metadata.EntityId property restored #3162

UniqueKey, Images, Fine-Tuning Typed API and more

05 Sep 05:40
8c6dc67
Compare
Choose a tag to compare

Highlights

  • 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 / 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

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

  • lots of minor bugfixes
  • Languages: Bug in UI: Some labels and dropdown-labels didn't show in current language #3153

2sxc 16.03 with enhanced Typed mode

21 Aug 08:02
22882ab
Compare
Choose a tag to compare

This massively improves v16.02 with the typed mode and is slowly finalizing all work.

Important Breaking Change (for new Typed code only)

Read the breaking changes in typed code in v16.03 blog post.
Note that we

  • Base classes were renamed because of confusing ...Pro suffix. RazorPro is now RazorTyped, ApiPro is ApiTyped and CodePro is CodeTyped #3147
  • Now by default, all access to a property like .String("SomeName") will throw an error in required mode if the field doesn't exist #3138
  • The .Parents(...) was enhanced to require named parameters (see blog post) #3139

Enhancements

  1. Typed: Massively enhanced and reduced the possibility of writing code which doesn't do anything
  2. Oqtane: Better error when Oqtane in installed without sufficient DB permissions #3128 / #3131
  3. Image Resizer: Upgrade to dnn-imageflow 1.2.1 #3130
  4. Image Resizer: New Square resize settings #3134
  5. Typed: ITypedItem now has a new .Picture(...) method making the code nicer #3135
  6. Image Resizer: ImageService can now also handle IFile objects and get the metadata automatically #3140
  7. Typed: ITypedItems can now be mocked #3141 to create alternate data in code when no data exists
  8. Typed: New methods ContainsKey(...), Keys(...) #3142
  9. Typed: New methods IsEmpty(...) and `IsNotEmpty(...) #3144
  10. Typed: method .String(..., scrubHtml) now also accepts a string containing tags to remove #3146
  11. Typed: If an error occurs, much more information is provided as to how to fix #3143 #3145
  12. Web Farm Cache: Updated for v16.02+ (enterprise customers only)
  13. Page Parameters: now support ITyped so you can use MyPage.Parameters.Int("id") and similar
  14. Typed Json: now also supports paths, so you can use Kit.Json.ToTyped(jsonString).Int("Root.Child.Id")
  15. Typed Json: now also strict using propsRequired by default
  16. Typed: the property .Dyn now only exists on ITypedItem (entity-based) and not on other wrappers

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

Other / Internal

  1. Code cleanup with warnings new EF-Core #3132
  2. EF Core QuerySplittingBehavior #3133
  3. Newtonsoft internal version in DNN Manifest now matches 13.0.3