Along with the official add-ons being available for Umbraco 9, a number of community packages have also been updated and there are more to come. We’re so thankful for all the hard work put in by the community and package developers to ensure a great launch for Umbraco 9. HIGH FIVE YOU ROCK 🙌
What’s new since Umbraco 9 Beta
The bulk of the work that has been done since the first beta release is related to how packages are handled in Umbraco.
The most significant change in this area has been to the package format and installation process. Due to technical changes in the underlying web framework, we can no longer make a stable package format that supports DLL files, if packages have to be installed during runtime. Instead, we have decided to go with the built-in package format for dotnet - NuGet packages.
You can read more about the root cause and the initial approach to the issues in the Packages in Umbraco 9 on NuGet blog post.
Only one supported package format
NuGet packages have been supported in Umbraco for years and have already become the standard both for delivery and consumption for many users. From Umbraco 9, it will be the standard (and only) way of creating and installing packages in Umbraco. This should make it easier to document how to create, publish and maintain packages going forward.
Switching exclusively to NuGet does bring about some challenges as well, such as lack of support for content installation, discoverability/installation through the backoffice, and more. These have all been addressed as you can see below.
In order to deal with content installation via packages, we’re introducing a new concept called Package Migrations. These are very similar to the migrations that Umbraco uses, but the solution can configure whether or not to execute these unattended, during startup or manually from the package section.
Package migrations can be used where packages normally have been using the original migrations, but it will also be possible to use Package Migrations to load an XML-doc with Umbraco content. This XML-doc can be generated from the Umbraco package section, in the same way you have been building Umbraco packages with content in the past.
The configuration of Package Migrations can be different for each environment and makes it possible to have the migration executed unattended on the development environment, but leave them or run them manually on other environments. This can be used when you use a tool like Umbraco Deploy or USync as these will migrate the content.
Changes to the Package section
Due to the change to only support NuGet packages, we have made some minor changes to the package section. Now, packages on Our.Umbraco need to be marked as “This package is in the new (V9+) NuGet format”, and have a “NuGet package URL” to be searchable from backoffice. This is required as the old compatibility information was tied to the uploaded files, which do not exist for v9.
Click here for full-screen video.
The official Umbraco Starter Kit is available as a Beta, distributed as a NuGet package. This is possible due to the new Package Migrations.
The official Umbraco Starter Kit showcases both how to use Umbraco in a super simple example but also showcases how to create starter kits for Umbraco.
Besides shipping starter kits as NuGet packages, .NET5 also makes it possible to ship starter kits as dotnet new templates.
Other HQ packages
Umbraco Forms has been available in beta version since the third beta of the CMS but is now updated to work together with this new Release Candidate.
Furthermore, we are now ready to ship Umbraco Deploy in the first beta version. The implementation of Umbraco Deploy led to a couple of changes in the CMS to make package development easier.
Finally, we have also made the Umbraco.ExaminePDF available, so it is possible to read text in most PDF files.
Simpler install process
Now that we have reached release candidate status, we have decided to ship the NuGet package and templates for Umbraco 9 on the official NuGet.org feed. This makes the installation process of Umbraco 9 even simpler compared to the beta and alpha releases. See the How to get started section below for details. Forms and Deploy for Umbraco 9 are still in beta and available from the umbracoprereleases feed
What’s new in Umbraco 9?
If you want a full overview of changes in Umbraco 9 compared to Umbraco 8. Please refer to the blog post for the beta release.
Who is the release candidate relevant for?
You, most likely 😉 As we consider Umbraco 9 feature-complete, and more and more packages become available, this release is also relevant to more people. And if you want to be one step ahead of what the future of Umbraco will look like/work very soon, taking the Release Candidate for a spin is a great idea!
Do note that it is still just a release candidate and we expect to find issues that need to be fixed before the final release. We do not recommend running live Umbraco 9 sites in production on the release candidate.
If you have a project that is targeted to go live after the final release of Umbraco 9.0.0, we recommend starting that project on the release candidate. We are currently targeting end-of-August for the final release.
Help us by testing/playing around
The more people building projects and testing out the release candidate the better. We appreciate all testing and especially edge cases that you have done in Umbraco previously. If you encounter any issues, please do raise an issue on the tracker - see below for more details.
Package developers - Make your packages available
We know many package developers are starting to migrate their packages to Umbraco 9, including Vendr, uSync, DTGE, uMarketing Suite, Contentment and more. That is amazing - SuperTak! Packages are important for most Umbraco sites and the earlier these packages are available the more people can help to test both Umbraco and the packages, before the final release.
How to get started
We have added a full guide to how to get started with the release candidate, but here you have a short summary.
First of all, please check the prerequisites list:
- .Net 5 SDK
- SQL connection string (MS SQL Server/Azure), unless you want to install using SQL CE (Compact Edition)
To use the new release candidate you can install the new Umbraco dotnet template:
dotnet new -i Umbraco.Templates::9.0.0-rc001
Now that the Umbraco template is available, you can create a new empty Umbraco project:
dotnet new umbraco -n MyCustomUmbracoSolution
This creates a new project with the name: MyCustomUmbracoSolution. You can now open the newly created project in your favourite IDE (Integrated Development Environment) or continue using the CLI (Command Line Interface) commands.
In CLI the project can be built by navigating to the newly created folder and running the build command:
At this point, the project is ready to be executed:
This will boot the project, and write the log to the console. The website is now running on the Kestrel server, it will be available on the ports written in the console.
By default, Umbraco installs without SQL CE support, due to the Windows-only limitation. SQL CE can be added by creating the project with the following command:
dotnet new umbraco --SqlCe -n MyCustomUmbracoSolution
How to provide feedback
Even though this release is considered feature complete, it is unrealistic to expect there won't be more changes to come, although at this stage they should be minor bug fixes based on feedback and testing.
We plan to make new release candidate versions when bugs are fixed. Besides fixing potential bugs in the CMS and the HQ packages, we will also focus on making Umbraco 9 available on Umbraco Cloud and continue the efforts to document Umbraco 9 with the Documentation Curators.
Finally, we will of course continue to merge new features from Umbraco 8 into Umbraco 9.
All of this leads up to the final release for Umbraco 9, which is targeted for release at the end of August, 2021.
Now, go on and take the Umbraco 9 Release Candidate for a spin!