Thursday, August 19, 2021
With version 9, Umbraco is ported from .NET 4.x to .NET 5.0. With the new development, V9 also achieves platform independence for the first time, which enables hosting outside of Windows (IIS) on other operating systems. These innovations open up many additional application possibilities for the Umbraco community and simplify their handling.
The development of Umbraco 9 began with the Unicore project at the Umbraco MVP Retreat 2019, with the aim of transferring the backend technology of Umbraco 8 to the .NET 5 framework and the ASP.NET Core 5 web framework. This resulted in two years of work on Umbraco 9. For V9, however, Umbraco is not completely redesigned, but migrated piece by piece completely to .NET Core.
The release of the first beta version of Umbraco 9 already took place in April 2021. At that time, all features and functionalities that are also available in Umbraco 8.13 were already included and migrated to the latest version of the Microsoft tech stack. Since July 2021, a first release candidate has also been available to the community for testing. Not only here, but throughout the entire process, as usual, a lot of emphasis was placed on the active participation of the community. Responsibility for this was assumed by the so-called Unicore Team, led by Bjarke Berg, which consists of volunteers from the community and some HQ members.
Umbraco has always run on the Microsoft .NET Framework. Long before Microsoft announced in 2019 that there would be no further versions of the .NET Framework 4.8, the move of Umbraco to .NET Core had already been decided. Even though .NET Core 5 does not yet offer Long Term Support (LTS), Umbraco is to be made future-proof and open for further development. As soon as .NET 6 LTS is released (planned for November 2021), projects with Umbraco 9 should then be able to be easily updated, while Umbraco itself retains its dependencies on ASP.NET Core 5.
In addition to future-proofing, the migration offers numerous other advantages. .NET Core was completely redeveloped by Microsoft, with one of the basic ideas being maximum performance. The changeover therefore promises Umbraco an enormous improvement in terms of performance. It can take advantage of new hardware and software, resulting in a 100 to 1000% increase in performance, depending on the application (source: Umbraco). In addition, scalability at the hardware level is many times higher.
With the conversion to .NET Core, Umbraco is also available platform-independently for the first time. This means that Umbraco can now be used on Linux and MacOS in addition to Microsoft Windows. Current limitations on new MacOS devices should be solved with .NET 6 at the latest. This opens Umbraco to new groups and increases hosting options and architecture possibilities. The potential for growth of the Umbraco community is enormous!
Another advantage of Umbraco 9 and its platform-independent use is the opening for Kubernetes and Docker technologies. What was hardly practicable under Windows in V8 is now possible and allows the use of Docker also with Microsoft and MacOS.
In order to transfer Umbraco to the latest version of .NET and to use the associated advantages, a lot of changes were necessary. Little has changed in appearance since V8, the change only becomes apparent in the code. Here are some examples:
User and Member Authentication
Instead of two authentication options ASP.NET Identity and Membership Providers as in Umbraco 8, ASP.NET Core Identity can now be used to implement both types. This simplifies maintenance in the long run and much of the code can be reused with both concepts.
Umbraco 8 uses some third-party dependencies that were not originally intended for use with .NET Core. Many of these could be made compatible through an update, others were redeveloped. V9 now also uses the dependency injection (MSDI) integrated in .NET Core instead of an external package as before. This offers users greater flexibility and adaptability to individual workflows.
Installation of Packages
The process of installing Umbraco had to be fundamentally changed. Instead of installing the Umbraco package into an empty web project, dotnet new templates can now be used. These templates have to be installed via the open-source package manager NuGet, but can subsequently be used via CLI, Visual Studio and Rider.
LTS Versions of Umbraco as of Version 9x - © Umbraco
Umbraco 8 packages will not run on the new framework and will therefore have to be migrated. Umbraco 8 itself will continue to be improved and provided with updates from headquarters. They have promised at least three more years of support and bug fixes after the last minor release. More information about this can be found here. Future changes and additional features in Umbraco 8 will be continuously added to the .NET Core version.
We at byte5 are very excited about the new possibilities Umbraco 9 will open up in our daily project work and look forward to a growing Umbraco community. H5YR!
Monterro's entry as an investor in Umbraco will also provide exciting new impulses and promote further development. You can find more information here.