A new major version means there are changes and with Umbraco 9, it’s the entire framework that’s been updated. Much will be familiar but there are new things to get familiar with. For some, this can be a daunting task (where do I even start?), others are just really excited, and most are probably somewhere in the middle.
There’s never been a better time to get started with Umbraco 9! Not convinced? Here are 5 good reasons why you should consider getting started with Umbraco 9:
- Get a head start 🚀
This is the future of Umbraco and the sooner you familiarise yourself with it, the sooner you’ll be able to take advantage of all it has to offer now and all the improvements and features that will come down the line. At the time of writing, Umbraco 9 is available as a release candidate and it’s been rigorously tested since the first alpha was released a year ago. So much so that we now recommend starting new projects on Umbraco 9 (projects going live in Q4, after the final release) . There might be a few fixes and updates before the final release but everything should be production-ready.
- Packages are ready 📦
A large number of popular community packages, as well as the official Starterkit, Forms and Deploy from Umbraco HQ, are available for Umbraco 9. This means you can test, or start building with Umbraco 9, including all the functionality and benefits you rely on from these packages.
- It’s “just” a framework update ⭐
Notice the “just” is in air quotes 😉 The purpose of the Unicore project, which is now resulting in Umbraco 9, has been to migrate the Umbraco codebase from ASP.NET to ASP.NET Core (and .NET 5). The changes in functionality are a direct result of the new tech stack and not because we wanted to change things in Umbraco. This in turn means that most things will work the same and should be very familiar if you have worked with Umbraco 8.
- Documentation is available 📰
Almost 60% of the documentation has been updated for Umbraco 9 and we’re targeting for 80% to be reviewed and ready for launch. You can see the very long list of articles that have already been updated on the Umbraco 9 articles documentation page. You can also see if a page has been updated in the versions box.
- It’s a team effort 🙌
By using Umbraco 9 today, you’re helping with the most important task left in the project: Testing! This is THE most important thing during the release candidate phase. We can test as much as we like, automated or not, but there’s no substitute for real developers trying out their workflows, patterns, and shortcuts when building things with Umbraco.
With that said, let’s take a look at some of the content available that might help you to get off to a good start with Umbraco 9, help you avoid some of the pitfalls, and or maybe even provide inspiration for what you can do with the new framework.
How do you actually get up and running with Umbraco 9? You can find step-by-step instructions on how to install and start a new Umbraco 9 project in the Umbraco 9/.NET 5+ updates article.
For a first-hand account of getting things up and running, Chriztian Steinmeyer’s blog post on Trying out the .NET Core Umbraco Alpha release is a good read and you might also find Rick Butterfields Umbraco Unicore first impressions blog post valuable. Just note that the instructions are based on the alpha release and are slightly outdated. Umbraco 9 release candidate no longer requires you to add the pre-release MyGet feed but is available on the official NuGet feed. So, for installation please refer to the documentation.
If you’re a Visual Studio user, Joe Glombek’s talk from Codegarden 2021, Shaken to the Core about .NET 5, will show you how to install Umbraco 9 through VS and also does a good job of highlighting differences between .NET framework and .NET 5 as well as outlining changes in Umbraco 9 from earlier versions - Well worth a watch!
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.
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.
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.
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:
- YouTube: Part01 Porting a Package from V8 to V9
- YouTube: Part02 Configuration & Options in Umbraco Package for .NETCore
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:
An exciting side-effect of being on .NET 5 is that it has cross-platform support, meaning you are no longer tied to Windows for development or hosting. It opens up the possibility for working with Umbraco, natively on a Mac or completely changing the standard hosting setup to be IE. Linux based.
If you’re a Mac user and a Umbraco developer, chances are you’re used to running a virtual machine with Windows or use RDP to connect to an environment where you can run Visual Studio and the correct servers. With Umbraco 9 that’s changing! While it has not been the main focus during development (Windows is still the main priority), we’ve made sure that it is cross-platform compatible. This has for example meant saying goodbye to trusty old SQL CE for local development, as it is Windows only.
And it’s just amazing to see Umbraco up and running in different environments. Warren did another video on the subject, getting his old Macbook to run Umbraco natively. Carl Sagunar got even more exotic in a great blog post named Running Umbraco on a Raspberry Pi or How I Stopped Worrying and Learned to Love Linux. Great creativity is on display here and it’s really interesting to see Umbraco running on Linux, on a Raspberry PI - That is a server setup you wouldn’t see on older versions of Umbraco.
With Umbraco 9 running on Linux, the world of containerization also opens up. Popular tools like Docker and Kubernetes can now be used to create containers and used to ship Umbraco applications and infrastructure. There are already some interesting examples, and if you’re looking to get started in this area Corné Hoskam has detailed how to get started with Building Applications with Umbraco 9 & Docker and you can find a full docker example on Github as well: Umbraco (.NET Core) Docker Example.
Now it’s your turn
These are just some of the articles and videos about Umbraco 9 that have been published recently. You can find more in Umbraco 9/.NET 5+ updates article. We’ve tried to add to the list as things get published but as you can see there has already been an incredible amount of blog posts and tutorials posted. If you think something is missing, you can submit a PR to the article (it’s open-source as well) or raise an issue and we’ll get it updated.
A huge thanks and HIGH FIVE YOU ROCK 🙌 to everyone who has taken the time to share their knowledge so far. The interest in Umbraco 9 is overwhelming and it’s a great help for anyone getting started with it now.
Hopefully, this article has given you the inspiration to try out Umbraco 9 (and maybe even share your experience 😉). It is a great time to dive in, there’s documentation, blog posts, and videos there to help out. And if you do give it a go, don’t forget to let us know on Github if you encounter any issues. The more testing and reporting that’s done during the release candidate period, the more can get fixed making the final release even better (ETA: September 28th) 🚀