Releases: 2sic/2sxc
v17.01.01 stability
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
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
- 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
andApiTyped
- ✏️ 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
What's Changed
- Release v17.01 by @iJungleboy in #3253
Full Changelog: v17.00.00...v17.01.00
2sxc 17 with Loads of Coding Enhancements
2sxc v17 with Lots of Coding Enhancements
such as
- ©️ Work with Roslyn Compiler in Dnn and Oqtane
- ©️ Support C# 8 in Dnn (previously C# 5) and C# 12 in Oqtane
- ℹ️ Intellisense in VS Code
- ♨️ HotBuild Live Compiled App-Code to use typed helpers in Razor
- 🔌New cool APIs to make life easier
Intellisense ℹ️
- ℹ️ Developed best practice to enable IntelliSense in VS Code
- ℹ️ Cleaned up a lot of internal APIs to prevent them from showing up in intellisense (still WIP)
- ℹ️ Include XML for the most relevant parts in the build, so intellisense works with help texts
HotBuild Compile System ♨️
- ♨️ New system to compile all files in the folder
/ThisApp/Code
into a DLL on the fly - ♨️ System to detect this and provide the latest DLL to all Razor and C# files which have
using ThisApp.Code
- ♨️ Feature to provide code-context to helpers created using
new Helper(this)
vs. previously usingCreateInstance("Helper.cs")
API Enhancements 🔌
- 🔌 The Toolbar Service has a new method to start an empty toolbar with only an edit button
Kit.Toolbar.Edit(...)
- 🔌 The protecting parameter
noParamOrder
used to be astring
, now it's a special type, so that VS-Code can detect improper use - 🔌 The view object
CmsContext.View
orMyView
now has aSettings
property which retrieves the view settings - 🔌 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) - 🔌 The
ITypedItem
- usuallyMyItem
has a new propertyIsPublished
to determine if it is published - 🔌 The
ITypedItem
- usuallyMyItem
has a new propertyPublishing
which contains a lot of additional information and access to the draft/published counterpart - 🔌 The toolbar API to create an
info
button can now specify a link-target
- 🔌 The
App
object now hasGetContentTypes()
andGetContentType(name)
methods - 🔌
IEntity
now has an officialGet(...)
andGet<type>(...)
method to match the APIs of other data objects
Minor UX Enhancements 🎇
- 🎇 The toolbar buttons now work with Ctrl+Click to open new tabs
- 🎇 App Admin UI now shows the App Icon to make life easier when you have many admins in many tabs
- 🎇 Colors of the toolbar updated to new look
Special to Dnn ☢️
- ☢️ After installation, 2sxc will require the admin to install the CodeDom library - see https://go.2sxc.org/dnn-roslyn
- ☢️ Include
Microsoft.Bcl.HashCode.dll
in the package, to ensure CSVHelper can generate CSV (not just read) - ☢️ To enable this, we created a system to detect the language capabilities of the installed compiler
Special to Oqtane 🩸
(no special Oqtane changes)
Bugfixes
- 🪲
App.Data.Create(...)
andApp.Data.Update(...)
had some bugs
Internal Enhancements
- Refactored how the AppState is built, and made almost all the APIs internal
- Crazy refactoring of the internal APIs
Eav.Apps
to be way simpler/better - Created system to inject more features into Insights using Providers
- Enhanced the UI Field-Mask to support the tokes
[ID]
and[GUID]
- Created a mechanism where system-features such as C#8 or Blazor can be detected just like enabled/disabled features.
- 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. - Ability to create ContentTypes for Input-Fields which use a GUID instead of the special
@string-subtype
naming convention - Docs are now multi-version, so archived versions will remain online indefinitely
Possible Breaking Changes 💔
- 💔 The protecting parameter
noParamOrder
used to be astring
, 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. - 💔 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. - 💔 A previously internal object
App.AppState
may have been used to get Content Type definitions. We now created official commands for this on theApp
object and removed thisAppState
object. If you were using it, you will have to update the code.
Merry X-Mas!
2sxc 16.09 for Oqtane 5 / .net 8
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
- ✅ Blazor .net 8 / Oqtane 5 support
- ✅
TypedItem.Picture("Child.Property")
path notation - ✅ fix js minification of
inpage.min.js
#3200 - ✅ Release all apps in the new typed mode
- ✅ Improve file-upload to prevent files with ".." in the name
- ✅ Improve DataSource Caching and cache-flushing
- ✅ Add new (beta ⌛) feature for copyright management (Patron AdvancedCMS) to add copyright info to each image
- ✅ Extend SQL Database to store
SysSettings
andGuid
on Attributes for future features - 🐞 Fix minor issue with old
.Code
for older Razor base classes - 🐞 Fix minor issue with edit-dialog in scenarios with multiple portal aliases
- 🐞 Fix minor issue with
IMetadata.Children(...)
/...Child(...)
#3217 - 🐞 Fix DataSource
LanguageModeler
#3219 - 🐞 Fix DataSource
TreeMapper
- 🩸 Oqtane: Adam backend didn't always serialize all properties #3206
2sxc 16.07 LTS
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.
- new
.Parent(...)
- especially..Parent(current: true)
api #3173 - new parameters to the
.Picture(...)
incl.picClass
,imgAttributes
andpicAttributes
- fix bug where presentation data was generated even if not used #3185
Enjoy 💖
Minor bugfixes / enhancements
Features
- Major: Redesign build/deployment system https://go.2sxc.org/build
- TurnOn - ability to skip adding duplicates #3170
- ITypedItem -
Parent()
to get parent of the item which had created it usingChild(...)
orChildren(...)
#3173
Bugs
- Issue creating custom WYSIWYG #3137
- Oqtane: Open-Graph headers #3172
- Admin UI: minor js-error in console #3174
- LightSpeed: performance issue when hosted from a network storage #3175
Minor
- Improve Insights logging - shorten long log-paths
Minor stabilization release
UniqueKey, Images, Fine-Tuning Typed API and more
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 replaceApp.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
andIsNotEmpty
- 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
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 nowRazorTyped
,ApiPro
isApiTyped
andCodePro
isCodeTyped
#3147 - Now by default, all access to a property like
.String("SomeName")
will throw an error inrequired
mode if the field doesn't exist #3138 - The
.Parents(...)
was enhanced to require named parameters (see blog post) #3139
Enhancements
- Typed: Massively enhanced and reduced the possibility of writing code which doesn't do anything
- Oqtane: Better error when Oqtane in installed without sufficient DB permissions #3128 / #3131
- Image Resizer: Upgrade to dnn-imageflow 1.2.1 #3130
- Image Resizer: New
Square
resize settings #3134 - Typed: ITypedItem now has a new
.Picture(...)
method making the code nicer #3135 - Image Resizer: ImageService can now also handle IFile objects and get the metadata automatically #3140
- Typed: ITypedItems can now be mocked #3141 to create alternate data in code when no data exists
- Typed: New methods
ContainsKey(...)
,Keys(...)
#3142 - Typed: New methods
IsEmpty(...)
and `IsNotEmpty(...) #3144 - Typed: method
.String(..., scrubHtml)
now also accepts a string containing tags to remove #3146 - Typed: If an error occurs, much more information is provided as to how to fix #3143 #3145
- Web Farm Cache: Updated for v16.02+ (enterprise customers only)
- Page Parameters: now support
ITyped
so you can useMyPage.Parameters.Int("id")
and similar - Typed Json: now also supports paths, so you can use
Kit.Json.ToTyped(jsonString).Int("Root.Child.Id")
- Typed Json: now also strict using
propsRequired
by default - Typed: the property
.Dyn
now only exists onITypedItem
(entity-based) and not on other wrappers
Bugfixes
- turnOn failed on AJAX reloads during editing #3127
- Oqtane: Bugfix importing App Assets #3129
- Web Farm Cache: Fix issue which occured on license uploads
- Licenses: fix issue with multiple licenses / names resulting in an
unlicensed
message
Other / Internal
2sxc 16.02 with Pro-Code-Mode, FIPS, Oqtane 4 and way more
This has been another big milestone in the history of 2sxc.
But first, A few warnings:
- We upgraded the ImageFlow (Image Resizer) to support FIPS #2988 This also means we had to update various DLLs such as
System.Text.Json
to V7 andNewtonsoft
to V13. This should not affect you, but if you have other modules installed, do some testing. - We had to break some very new APIs introduced in v16.01. This should probably not affect you, but if it does, check out this blog post
The Awesome Stuff
- 🩸 Oqtane 4 support
- 📷 ImageFlow upgraded to version 0.10.0 - thereby making sure it works with FIPS enabled #3121
- ✅ New Pro coding mode, which is type safe - we'll blog about this soon
- ✅ Major docs upgrades
- ✅ A lot of new systems which monitor your code and guide you if you did something wrong in your Razor
- ✅ Lots of internal refactoring for Composition over Inheritance
For full list, see https://docs.2sxc.org/abyss/releases/history/v16/index.html