What’s new in Umbraco 11.4
Improvements for extending Models Builder
In this release, you’ll find a new abstraction around the `Infrastructure.ModelsBuilder.Building.ModelsGenerator` class in Umbraco CMS. This abstraction allows developers to override the concrete class with a modified implementation and still access it through Dependency Injection.
Currently, the `ModelsGenerator` class is injected into the `ModelsBuilderDashboardController` and `AutoModelsNotificationHandler`. Although there are workarounds to intercept requests and use overrides to generate models with additional functionality, the goal of this feature is to ensure a more straightforward and convenient method that eliminates the need for request interception.
To achieve this, the proposed changes involve introducing an `IModelsGenerator` interface to the `ModelsGenerator` class. By adding this interface, developers now have the flexibility to override the implementation of the `ModelsGenerator` class with their own modifications while still being able to request it through Dependency Injection.
The change has been added to the Modelsbuilder documentation, but hopefully, it makes it so easy and follows conventions to an extent where it’s straightforward to work with.
Umbraco Package RCL project template
Alongside Umbraco 11.4 we’re introducing a new project template called 'Umbraco Package RCL' (Razor Class Library) for Umbraco CMS. The template is similar to the default 'Razor Class Library' template but includes references to the CMS and a sample package manifest file.
The purpose of this addition is to enable developers to distribute packages targeting Umbraco as Razor Class Libraries. This eliminates the need for custom MSBuild targets that copy files into the Umbraco project, simplifying the package reference and integration process.
The 'Umbraco Package RCL' template provides a convenient way to create packages that can be easily referenced and utilized within Umbraco CMS. Note that support for accessing package assets from Razor Class Libraries had been added in 11.0. Developers can still choose to use the existing 'Umbraco Package' template if they need to support older versions of Umbraco
In summary, this PR introduces the 'Umbraco Package RCL' project template, allowing packages targeting Umbraco to be distributed as Razor Class Libraries. This improvement streamlines the development and deployment process, making it easier to create and manage packages within the Umbraco ecosystem.
For an example of how to try out the Umbraco Package RCL see the pull request description.
Dependency Updates
The dependencies updated this time around are exclusively related to the backoffice. Worth highlighting is the 1.2 update for Umbraco UI Library. It now includes components for color picking, a new modal system, and a long list of features and fixes. See the Umbraco.UI release notes for more details. TinyMCE has also been updated to a newer minor version, and this addresses an issue with a missing icon for the style select button.
There are quite a few updated dependencies both included with and used in the build process for the backoffice. The full list can be found in the release notes (under Dependencies)
And more…
Aside from the bigger features mentioned above, there are a lot of improvements, tweaks, and fixes included. You can now use the Cite element correctly in the rich text editor without it being stripped out, system fields for Members, such as Approved and Lastlockoutdate are now available for use in the Listviews.
Make sure to browse the release notes for the full list. There’s almost certainly something that improves your development or editing experience with Umbraco. The bulk of these additions have been made by our fantastic open-source community, so let’s give them all a big HIGH FIVE YOU ROCK 🙌
Of the 40 bug fixes and feature additions in Umbraco 11.4.0, a total of 29 of them have been contributed by the community, by 20 unique contributors.
We’re welcoming 5 brand new contributors who have made their first pull request for Umbraco CMS; they’re marked with a star below. Welcome to the contributor club gadgetfbi, mroberts91, landlogicit, karlmacklin and rogalmic 🏆
⭐ = First pull request to Umbraco CMS
And of course, as a thank you, we’ve just added another bunch of trees to our growing plot for today’s 11.4.0 release to celebrate your contributions! 🌳🌲🌴