We are getting nearer to LTS and invested over 500 hours of iJungleboy and another 500 hours of other helpers within the last month. So much to tell...
This is another huge release. As we migrated all our apps to become Hybrid and run on Oqtane and Dnn, we found hundreds of improvements to make your life easier.
Ultra-Highlight
We updated 18 of our most popular apps to be super-clean, easy to understand and use the latest best-practices, while making them compatible with Oqtane. You can find them on our App Catalog
Highlights
- New Cross-Platform IMailService for sending mails #2554
2. This is extra awesome, as you can also give it an array of ADAM IFiles and it will attach them ot the mail
- New Cross-Platform ILogService to report errors to Dnn/Oqtane
- New IJsonService #2516 #2513
- New
Convert
property which is an IConvertService
to safely convert numbers, strings and more, also for use in JS or JSON #2533
- New IRenderService for inner content #2550
- Created IParameters with
Add
, Remove
and Set
commands to easily generate url-parameters which reuse existing url-parameters - for example when paging on a list which already has filters #2532
- Created an ISecureDataService to decrypt protected values/secrets in settings like google API keys #2556
Enhancements
Link.To
and Link.Image
now always creates a Safe-URL (encoding Umlauts and spaces etc.) #2542
Link.To
and Link.Image
can now also have a parameter type: "full"
to ensure a domain is added - important for linking stuff in WebAPIs like for RSS feeds #2543
Link.To
can now easily re-use existing parameters of the CmsContext.Page.Parameters
or slighly modify them #2532
Link.Image
now has a parameters
parameter to add stuff to the URL #2548
Link.Image
now can use 1:2
or 3/4
for the factor
and aspectRatio
parameter #2520
- Adam
IFile
objects now have a property PhysicalPath
making certain operations like adding e-mail attachments easier #2549
Edit.Toolbar
now has a condition
to selectively add a toolbar or not (for example only for certain users) #2525
DataSource
objects now have a new GetStream(...)
method which lets you get an empty list or null back if it doesn't find the stream #2522
CmsContext.Site.Url
now consistently has the current protocol as well #2547
- The
SerializationConfiguration
DataSource can now also filter out null/empty/zero values to make the JSON of a VisualQuery smaller #2551 #2557
DynamicObjects
can now wrap anonymous objects for mixing with settings, determining fallbacks etc. - great for Link.Image #2519
-
Internal Refactoring and Improvements
- LogHistory is now non-static and uses DI #2528
- Insights now shows warning if services were not customized to a platform #2529
- System features now also use Dependency Injection instead of static accessors #2539
- New Razor12, Code12 and Api12 don't support obsolete APIs any more #2540
- Entity Decorators now use a simpler model #2552
- Improve error message if a stream on a DataSource can't be found #2521
- DynamicObject wrappers wrapping anonymous objects will also auto-wrap anonymous object properties to make object navigation a breeze #2535
- Updated to RazorBlade 3.7 #2534
- Clean-up data-to-dictionary conversion, created official IConvertToEavLight objects for DI #2512
- ADAM now doesn't create folders when just checking if files exist #2517
- exporting apps will now exclude empty ADAM folders
-
Possible Breaking Changes
- The Link.To now creates a safe url and converts special characters. If you were playing around with urls after Link.To it may not have the identical format any more
- If you were already using new base classes like Razor12 and used obsolete APIs in there, it will fail now and tell you what you should use instead
Minor Bugfixes
- Oqtane now treats ADAM files as normal files and shows them in the file manager
- Lots of small Oqtane bugfixes like #2527 #2537 #2555 #2536
- Serializing a DynamicJacket Object now works as expected #2511
- Dnn 9.10 updated a Microsoft-DLL which cause issues #2544
- string-from-query shows IDs instead of titles #2515
- CmsContext.Page.Parameters was also providing magic-parameters like the Dnn TabID - this was filtered out #2530 #2531
- Bugfix requireJs issue which affected custom input fields #2526
- Random bug, sometimes App file-system based content-types are missing till restart #2524
Get it while it's Hot!
Github releases: https://github.com/2sic/2sxc/releases/tag/v12.05.00
Huge thanks to all who worked really, really hard incl.
- Tonci @tvatavuk
- Petar @PagnoDunadan
- Maxim @maaaximum
- Roman @ropalko
- me myself and I @iJungleboy