Up and running
Once you’ve got Umbraco 9 up and running, you might be wondering how does it work? What has changed? AM I DOING IT RIGHT?
And luckily the answer, at least for many of the basics of Umbraco, is that they have not changed. There might be some smaller differences here and there but mostly it should be very familiar. As mentioned earlier, the goal was not to create a new version of Umbraco but to get Umbraco to run on .NET 5. So logging into the backoffice will be like coming home, things are where they used to be. You still work with Types for setting things up, templates can be generated and assigned to Document Types, and you still have partial views and macros and all the other things you used to.
With so many things being the same it can be hard to identify what has changed. A good way to get up-to-speed is another talk from this year’s Codegarden, aptly named, Umbraco 9 - The next major version. Here Elitsa and Bjarke from Umbraco HQ, go through all the updates that have been made in order to make Umbraco a .NET 5 application. From solution structure, over notifications (events) to Models Builder, it’s all covered with explanations and code examples.
If you don’t want to start from scratch, Dennis Adolfi has created an Umbraco 9 demo site and incorporated a lot of the techniques and patterns that he normally uses in Umbraco projects and made it all available on Github. Not only that but he’s also taken the time to document his findings in a blog post series, starting with Umbraco v9 findings. Alternatively, you can install the Umbraco Starter Kit package, which has been updated for Umbraco 9.
Configuration
One of the areas that have seen quite a lot of changes is configuration. In .NET 5 we no longer rely on XML config files, instead, configuration is handled in JSON and through code. You can find info and examples of how this works in Warren Buckley’s video Configuring Umbraco on .NET Core - JSON Schema. For an in-depth introduction to why and how things have changed in both .NET and Umbraco 9, take a look at Emma Garlands blog post on Demystifying configuration in Umbraco .NET Core.
The built-in Models Builder has been updated to use the new configuration and there are some other minor changes as well. Carole Rennie Logan has written a blog post about Models Builder in Umbraco 9, so if you’re using it it’s a really good read.
Packages
As mentioned above, many of the most popular packages for Umbraco are updated for the new version. It’s impressive to see how quickly the package community has adapted to Umbraco 9 (H5YR!). Many of them can be found via the package section in Umbraco 9:
You might notice that there’s no longer an install button for packages in the backoffice. Packages have to be installed via NuGet, so either using a command, exactly the same as when installing Umbraco 9 itself, or the NuGet manager in Visual Studio.
Some of the packages are still in beta/release candidate state and you’ll need to refer to their repositories for how to get the new version.
Package development
If you are a package developer and looking to get your package ready for Umbraco 9, Warren has created a series of video tutorials that show the basics of making a “simple” package work on Umbraco 9:
Aside from showing how to upgrade a package specifically, the videos also dive into how things work in a number of areas such as logging and configuration, so it’s not just package developers that will benefit from the topics covered.
You can also find a write-up done by the package community team on how to migrate a package from Umbraco 8 to 9, right here on the Umbraco blog. They use a multi-targeting approach, which means the code for both the Umbraco 8 and 9 version can be maintained in one codebase. There’s even a live coding session to go along with it: