On the 1st of December 2022, Umbraco 11 was released. As you would expect, Umbraco 11 has some new features, including a new and improved block editor and full compatibility with .NET 7!
Within this article, you will learn everything that you need to know to install Umbraco v11, then in the latter half of this post, we will look at what's new and why you should care. If this sounds exciting to you, this is the article for you π₯π₯π₯
Upgrade Considerations
Before getting into the details, one important fact that needs mentioning before you install any version of Umbraco nowadays is support.
The Umbraco team adopted a new support model in Umbraco v10. This new model defines how long different versions of Umbraco will get supported with updates and patches. The new support model was changed to mirror Microsoft's support cadence of the .NET platform.
The reason why it is important that you understand these nuances is due to planning and effort. Moving forward Microsoft supports two flavours of .NET, Long Term Support (LTS) releases or Standard Term Support (STS) releases.
LTS releases are maintained for a longer duration and are provided with bug fixes for an extended period of time. Microsoft will provide support and patches for 3 years for any LTS release. STS on the other hand, still get new, however, these versions of .NET will only get free support and patches for 18 months.
In essence, you have two paths. If you want to constantly have your site running the latest and greatest features Umbraco has to offer, you can upgrade your site with each STS release. If you just want a website that works, you can just upgrade whenever an LTS release is made.
Microsoft classes .NET 6, which is the version that Umbraco v10 uses, as an LTS release. This means Umbraco 10 will be supported until November 12, 2024. Umbraco 11 on the other hand uses .NET 7 which is only an STS release. This means v11 will lose support 6 months before v10 on May 14, 2024. This means that if you want to follow the STS lifecycle, you will then need to upgrade to v12 when it comes out in Nov 2023. This version will use .NET 8 which is also LTS. You will then need to upgrade again to v13 in November 2024, which would be an LTS release
To be clear, you do not need to stay fully within the Microsoft support window. In all likelihood, after your site has been running OK for 2 years it won't magically break due to a bug in .NET. All this really means is that if you are upgrading an existing site, you have more to consider nowadays.
It is worth pointing out that the feature that I think developers will get the most from v11 will also be backdated to be included within v10 as well. If you are reading this article and you already have a v10 site, I can not say if it will be worth the extra time and effort for your particular instance to upgrade, however, for this article, I will assume that you will want to upgrade!
Umbraco V11 prerequisites!
Installing Umbraco easily and quickly requires certain prerequisites to be set up on your development machine. You might be tempted to skip these steps, but don't. You won't get anywhere faster, trust me as someone who is very impatient π
Provided you have the correct prerequisites nailed on your local machine, installing a vanilla version of Umbraco 11 should take you around 10 minutes. The next logical question, is what are these prerequisites?
- .NET 7 installed (link here). I recommend that you also down the hosting bundle option from the download, as that should give you all the packages that you need to host your website as well.
- Latest version of Visual Studio was installed and patched correctly
- SQL server installed and configured
- A SQL user enabled with the correct permissions
If you are installing your website on a machine where you haven't set up IIS, or SQL previously, there are some additional steps that you will need to follow. I've written a complete walkthrough of what you need to do in my Umbraco 9 guide. As these steps haven't changed I recommend checking out that tutorial if you get stuck. You can access that tutorial here.
As a nice-to-have, you may also want to run your new website within IIS, or a docker container to aid you with your local development. Again this process has not changed since v10. If you want to learn more about that process you can read this tutorial.
Installing V11 in under 10 minutes!
In order to install Umbraco, you will first need to install a project template. You can install the Umbraco template via the CLI. After the project template is installed you can continue to create a new Umbraco 11 website through the CLI, or, you can switch to Visual Studio instead.
I find the easiest way to install a new site is via the CLI which we will start with. After that, I will walk you through the Visual Studio installation path. There is no real ascertainable benefit of using one approach over the other, so the route you use will really be down to preference. Pick the option that makes you happy π
To install the Umbraco installation template, fire up your terminal and run the following command:
Installation via the CLI: After the Umbraco template is installed, you can now create a new Umbraco website using this command:
Replace MyProject
with the name that you want to use for your project. The installation process should take less than 2 minutes, so it is super-quick. The installer will add your new website to a folder with the same name as your project.
After the installation process is complete, switch directories to that folder and then you can run your new Umbraco V11 website using this terminal command:
Installation via Visual Studio: With the template installed, fire up Visual Studio. Create a new project, in the All Languages
dropdown select C#
and within the All Project Types
dropdown select Umbraco
. Two options should be returned here, Umbraco Package and Umbraco Project. IGNORE the Umbraco Package
template. You want to use the Project template. Select Next
:
Give your project a name and add the location on your machine where you want the files to be created. When finished click Next
to get to the final screen, 'Additional Information'. From this screen make sure that .NET 7 is selected and Umbraco 11.
It is possible to add some other options within this screen, however, you will also be able to add these details when the second Umbraco installer runs shortly. This is why I tend to skip these options. When you are happy click the Create
button. The Visual Studio installer will install all the files you need. After the files have been installed, run the site using the debugger to finish the installation process and start the Umbraco site configuration wizard.
Configuring Your Website
The Umbraco installation wizard will guide you through the process of configuring how your Umbraco site will work. From this wizard, you can create the database and define an admin user that can log into the CMS:
The quick way to get up and running with Umbraco is to use SQLite
as the database hosting solution. The better approach for local development is to host the CMS database within a SQL server. If you want to use SQL, create a blank database within SQL, and make sure you have a SQL account that has remote access privileges and uses that as the connection string details. Look at the related Umbraco 9 tutorial that I mentioned above, for a full step-by-step playbook of this process.
From this screen, you will also need to create an account. This account is important as its the account that you will use to log into Umbraco. get the password and you will not be able to access the CMS π
After the wizard completes, the Umbraco backend should load and you should now have Umbraco installed π₯π₯π₯
Tour of the new features
Umbraco v11 has some useful new features and below we will deep dive into the best new features. If you are interested, the official release notes for v11 can be found here.
.NET 7: As mentioned v11 supports .NET 7 which has a few nice features. You can read a full list of what you get here, however, in essence, you will gain two main benefits:
C# 11: C#11 has a few nice new features, like list-based pattern matching and better
null
handling. If you want to learn more about these features I recorded a video on this subject which you can find here.Performance: With each new .NET release performance keeps getting better. Overall .NET is still slower than C++ and GO, however, it is way faster than Python and Javascript
Apparently, there were over 700 performance-related PRs that were merged into .NET 7. This means over 23 areas in the stack are now quicker. A dude named Stephen Toub wrote a blog post that is over 70,000 words long detailing all these improvements. I don't have time to read it all, however, if you are interested the article can be found here.
Realistically, even though .NET 7 is faster, switching to it won't necessarily make your site faster. If your site is not making use of some of the areas with performance benefits, you might not notice any improvements.
Overall startup time should improve by around 10β15 and according to Microsoft, compile time is 73% faster if you use a new approach called Ahead-of-time (AOT). AOT generates code at compile time instead of run-time. The takeaway is that things are faster in .NET 7!
UI Changes: The first big change that you will likely notice within the Umbraco backend is a few UI changes. The installation wizard looks a lot nicer. The login screen has a nice new background and after logging into the backend, the packager manager area has also had a nice revamp.
Sadly, you still can't install packages directly via this interface like you could in v8. Instead, you get a cleaner UI and easy access to the installation command that will install the package for you within a terminal. This new UI is also powered by a new package marketplace that was released on the 1st of December. This new marketplace gets rid of references to older .NET Framework packages that are no longer relevant. I really like this feature and wish other CMS vendors did the same!
** Block Grid Editor: The biggest new feature in terms of added functionality is a new property type, the block grid editor:
The block grid editor does what it says on the tin. It's a property that will allow content editors to add blocks within a grid. If you want to simply test out this property, when adding it to a document type will also have the option of installing some sample blocks. Adding the sample blocks will install a headline block, an image block, a rich text block and a two-column layout block.
You can create new blocks within the document-type area, by creating a document type and setting it to an element type. This is the same process for creating blocks in v10. As we can use document types to build grids I think this is a pretty sorry property, that I will be using a lot!
Tiny MCE update: In case you didn't know Tiny MCE is the third-party component Umbraco uses as the rich-text editor. This component has been around since I started web development 20 years ago. It's used by pretty much every CMS out there and Umbraco is no different.
Within Umbraco 11, you get an upgrade to the latest version of TinyMCE v6. You can see a list of all the improvements within v6 here. If you have created bespoke TinyMCS plugins, you might need to keep this in mind when upgrading. As the TinyMCE bump is a major jump, except for breaking changes!
Asides from TinyMCE a few other packages have been updated, however, the remaining upgrades are minor bumps that don't really add anything of real note to the party πΊπ»π·πΈπΉπΎ
Umbraco Workflow: The last thing I want to mention that I think is pretty cool is workflows. Compared to some of the enterprise-level CMS systems, Umbracos workflow definitely was slightly lacking. The out-of-the-box workflow is great for smaller teams, however, if you work within a larger organisation with complex needs it was not ideal. The Umbraco team have also released a new improved Workflow package. The sad news is that it's not free and it will set you back Β£2250 per domain. This package has more than I can cover in this tutorial, however, you can get an idea of how it works below:
Should you upgrade?
Personally, I will l be upgrading this site to v11, hopefully, by the time you watch this. Is it essential, no? Will I find it fun... hopefully! Personally, if I were building a brand new site I personally would pick v11 to use. If you are already on v10, I think the choice is a little harder and will be based on your maintenance preferences moving forward. If you are upgrading your older site and you are on v8 or below, I would jump all the way to v11 now!
Happy Coding π€