Overview:
A couple of weeks back we announced the decision to postpone the beta release of Umbraco on .NET Core from the end of March to end of April. It’s important for us to ship a beta version that’s feature complete and ready for proper testing - that’s why, together with the Unicore Team, we have found it necessary to postpone the beta release as more work is needed on certain functionality before it’s ready for public testing.
We also recognize that package developers are eager to get their hands (and packages) dirty with .NET Core and that’s why we’ve decided to create this fourth alpha. The necessary changes have been made to start working on migrations of existing packages as well as creating new ones.
Final thing before we dive into the alpha release: On Wednesday, April 7th, I will be hosting a Community Office hours session together with the Unicore Team. If you have any questions about the Unicore Project (Umbraco on .NET Core) you can ask questions beforehand and see current questions here. We hope to get a lot of questions and look forward to answering them.
What’s included in Alpha 4
Since the last alpha release, a couple of cool changes are now available including:
Namespace changes
One of the main reasons we could not recommend package developers to start on earlier alpha releases, was because we still hadn’t updated the namespaces to match new file locations. The reason this was delayed until now, was mainly to ease the merges of commits from Umbraco 8 into our working branch. All namespaces are now updated:
Reintroduced friendly extension methods on IPublishedContent
We have reintroduced the extension methods on `IPublishedContent` that do not require all dependencies injected. The reason this was not part of earlier releases, was to ensure we are not using these extension methods internally, due to the fact that using these makes unit testing harder.
New NuGet package dependencies
We have aligned our NuGet packages with best practice in .NET Core - One package per assembly. Using this structure makes it easier and less error-prone for us to generate the NuGet packages. Furthermore, it is a step towards allowing users to have backoffice only or website only Umbraco instances in a load-balanced setup.
Includes Umbraco 8.12 changes
The latest changes from Umbraco 8 is now part of this project. Including new features like Unattended upgrades, Updated flow for creating Document Types and of course all the bug fixes and performance enhancements.
Event migration
Instead of relying on static C# events, we have introduced an in-process event aggregator inspired by notifications from MediatR. Now all notification handlers need to be registered in the DI Container, and the event aggregator will ensure these handlers are executed every time the specific notifications are published. Even though we already migrated a lot of events, we still have many to go.
Umbraco dotnet template now supports .NET 6 Preview
Since the last alpha release, Microsoft has released preview-versions of .NET 6. We have therefore added the option to the Umbraco dotnet new template to create the project using .NET 6.
Documentation
We still have lots of documentation to revisit but the process of documenting the next major release of Umbraco is well under way. The updated documentation currently only lives as a Github repository, but you can find the updated articles there.
Bug Fixes
The last alpha versions had an annoying error with ambient scopes, that forced users to redo the operation they did quite often. This is now fixed together with a series of other smaller bug fixes.