Umbraco on .NET 5+

    This article is intended for keeping an overview of all the information, official as well as unofficial, currently available on the upcoming release of Umbraco on .NET 5.

    Are you aware of some information about Umbraco on .NET 5 that isn't already added to this list? Please feel free to submit a Pull Request by using the Edit this page button at the top of this article.

    In this article you will find detailed instructions on how to try out and test the current beta version of Umbraco on .NET 5. You will also find a list of relevant links to official as well as unofficial resources on the upcoming release.

    Umbraco 9 Documentation

    We have started verifying the current documentation against Umbraco 9.

    You can find a complete list of all updated articles on the Umbraco 9 Articles page.

    News and updates from Umbraco HQ

    In this section you will find links to news and updates from the .Net Core team at Umbraco HQ, as well as from the UniCore community team.

    Blog posts

    Other resources

    Community resources

    In this section you will find a list of Umbraco .Net Core resources provided by the Umbraco Community.

    Community blog posts

    Other

    Umbraco 9 (.NET 5) Release Candidate

    As this is an release candidate, bugs and minor issues are to be expected.

    Found a bug that isn't already reported? Please report it on the GitHub tracker.

    To get started, follow the steps outlined below.

    Prerequisites

    • .NET 5 SDK
    • SQL connection string (MS SQL Server/Azure), unless you want to install using SQL CE (Compact Edition)

    Steps to install the Umbraco dotnet new template

    1. Install the new Umbraco dotnet template:

      dotnet new -i Umbraco.Templates::9.0.0-rc001

    [Optional] Update the template from earlier pre-release versions

    If you have already installed the Umbraco dotnet new template, you will need ensure it is up-to-date

    1. Use a command prompt of your choice to update the dotnet new templates

      dotnet new -i Umbraco.Templates::9.0.0-rc001

    Steps to create an Umbraco solution using the dotnet new template

    1. Create a new empty Umbraco solution using MS SQL Azure/Server:

      dotnet new umbraco -n MyCustomUmbracoProject

      Or if you prefer to using SQL CE:

      dotnet new umbraco --SqlCe -n MyCustomUmbracoProject

    You will now have a new project with the name MyCustomUmbracoProject, or whichever name you chose.

    The new project can be opened and run using your favorite IDE or you can continue to use the CLI commands.

    Steps to build and run

    The following steps, will continue using CLI based on the steps above.

    1. Navigate to the newly created project folder:

      cd MyCustomUmbracoProject
    2. Build and run the new Umbraco .Net Core project:

      dotnet build
      dotnet run

    The project is now running on the Kestrel server and is available on the ports listed in the console.

    The next step is to run through the Umbraco CMS installation. If you chose to use MS SQL Server/Azure you will need to add your connection string during this setup process.

    Once the installation process is complete you might need to manually restart the application in order to start the application again and get access to the Umbraco backoffice.

    Umbraco 9 Nightly Builds

    To get the latest nightly builds - the latest version of the Umbraco dotnet template, you will need to add another NuGet source.

    1. Use a command prompt of your choice to insert this custom NuGet feed:
    dotnet nuget add source "https://www.myget.org/F/umbraconightly/api/v3/index.json" -n "Umbraco Nightly"
    1. Install the new Umbraco dotnet template

      dotnet new -i Umbraco.Templates::9.0.0-*

    In order to get the latest template from the new source, you will need to use a wildcard symbol like shown above.

    Now you can continue in the same way as if you were using the beta version

    Package development

    Since Alpha 4, we have added a new template to in Umbraco.Templates package which is targeting packages.

    To use the new template write:

    dotnet new umbracopackage -n MyCustomUmbracoPackage

    This generates an empty package with an empty package.manifest. But more importantly it also contains a build/MyCustomUmbracoPackage.targets file.

    This file will be included in the NuGet package when using dotnet pack.

    The file contains an msbuild target that is executed on build when a project has a dependency to this package. It copies the app_plugin folder into the project. This is required for having Umbraco packages as NuGet packages.

    Furthermore, we introduced a new flag on the regular dotnet new umbraco template. You can now write:

    dotnet new umbraco -n MyCustomUmbracoProject -p MyCustomUmbracoPackage

    This new -P indicates that the solution is a test-site of the package MyCustomUmbracoPackage. It will add a project dependency to MyCustomUmbracoPackage and import the target file from that project. So when you build the new solution, it will also copy the App_Plugins folder from the package project into the solution. In the same way, as if it was a NuGet reference.

    Full example

    The following example shows how to use the templates in combination

    dotnet new umbracopackage -n MyCustomUmbracoPackage
    dotnet new umbraco -n MyCustomUmbracoPackage.Testsite -p MyCustomUmbracoPackage
    cd MyCustomUmbracoPackage.Testsite
    dotnet build

    Changes between alpha 4 and beta 1

    See tickets tagged on Github for a full overview.

    Summary

    • Members
      • Members are updated to ASP.NET Core Identity
      • Member passwords are rolled to a stronger hashing algorithm on member login
      • Members have stored a security stamp
      • Public Access Restrictions is updated to use the new member implementation
    • Events
      • The remaining events are migrated to the new notification pattern
      • Added TreeAlias to tree notifications.
    • Other
      • IUmbracoMapper should be injected instead of UmbracoMapper
      • Features and optimizations from Umbraco 8.13
    • Bugfixes
      • Fix for Can't enable AppData mode for models builder in Alpha4
      • Fix warning logged regarding Antiforgery tokens
      • Fix for problem with models builder and nested content
      • Fix for ContentCacheRefresherNotification is dispatching every 10 seconds FileSystem changes??

    Changes between beta 1 and beta 2

    See tickets tagged on Github for a full overview.

    Summary

    • Breaking changes
      • HideTopLevelNodeFromPath default value changed to to true.
      • All notifications moved to the same namespace to make them easily discoverable
        • More notifications also postfixed with "Notification". ServerVariablesParsing => ServerVariablesParsingNotification.
      • The order of view location changes, so /Views is the first to search.
      • "WebRouting:DisableRedirectUrlTracking" configuration changed from string to bool.
    • Features
      • Added API to validate user creadentials without actually logging them in.
      • Reintroduced missing overloads for GetCropUrl.
      • Enabled Microsoft SouceLink Debugging Feature.
      • Added localizable error descriptors for Users and Members
      • Replaced System.Drawing with ImageSharp when extracting the height and width of uploaded images.
    • Bugfixes
      • Fixed issue with scheduled publishing.
      • Fixed issues where the runtime lever was not used correct.
      • Fixed issue with ModelsBuilder when using inherited Document Types.
      • Fixed issues where the javascript minifier was too agressive.
      • Fixed issue with hardcoded '' as directory separator char (Linux issue).
      • Fixed issue in the Danish translation file leading to error doing install.

    Changes between beta 2 and beta 3

    See tickets tagged on Github for a full overview.

    Summary

    • Breaking changes
      • Examine 2.0 implementation.
      • ModelsBuilder mode names are changed.
        • PureLive => InMemoryAuto
        • AppData => SourceCodeManual
        • LiveAppData => SourceCodeAuto
    • Scope optional parameter ordering
    • Features
      • Restart not required on install.
      • Modelsbuilder InMemoryAuto (PureLive) output is generated in temp folder
      • Latests updated from Umbraco 8.14-RC
    • Bugfixes
      • Fix for unsafe project names; these are no longer unsafe for namespaces.
        • E.g. "Umbraco 9" will now use namespace "Umbraco_9"
      • Resolve virtual paths from DataEditorAttribute. E.g. "~/App_Data/...."

    Changes between beta 3 and beta 4

    See tickets tagged on Github for a full overview.

    Summary

    • Features
      • Added notifications when emails are sent
      • Allow Css / JS assets to be added via c# code in addition to package.manifest
    • Bugfixes
      • Moved extensions methods from HtmlHelper to IHtmlHelper
      • Fixed issue with saving data types
      • Fixed issue with recurring tasks executing too often.
      • Fixed serialization issues with data types
      • Fixed issue with View Model validation failing when using value types
      • Added missing friendly overload for IsAllowedTemplate
      • Fixed issues with the Umbraco dotnet new templates
      • Project name is not set
      • Unattended install info is now json escaped
      • Fixed issue with updating password
      • Fixed issue with members not approved by default when using the build-in macro snippets
      • Fixed issues with MediaPicker3

    Changes between beta 4 and rc 1

    See tickets tagged on Github for a full overview.

    Summary

    • Breaking changes
      • Methods obsoleted in 8.15 removed
      • Route plugin controllers by area
      • RenderController configuration as .NETCore IOptions pattern
    • Features
      • Packages migrations and UI changes to support NuGet packages.
      • 8.15 features
    • Bugfixes
      • Changes the RoslynCompiler to use assemblies resolved from the DependencyContext (Fix for MB InMemoryAuto)
      • Migrated missing surfaceaction extension methods
      • Add RazorCompileOnPublish property to UmbracoProject for template
      • Migrated missing UmbracoAuthorizedController
      • Linux case-sensitive directories (Grid)
      • Render grid editor partial async
      • Render Block List component partial async
      • Use english names for cultures in language CRUD
      • Rebuild Database Cache button does nothing

    Umbraco Forms 9 (.NET Core) Beta

    On Friday 4th June a beta release of the Umbraco Forms package for V9 was released.

    It's available from the Umbraco prerelease MyGet feed used for the CMS betas.

    ```none
    dotnet nuget add source "https://www.myget.org/F/umbracoprereleases/api/v3/index.json" -n "Umbraco Prereleases"
    ```
    

    And the package name is: Umbraco.Forms.9.0.0-beta002.

    With an Umbraco V9 application running rc1, you can install the package with the following command:

    dotnet add package Umbraco.Forms --version 9.0.0-beta002

    And then restart the web application with:

    dotnet run

    You'll find the Forms documentation updated where necessary for V9, mostly around configuration and some changes to method signatures when extending Forms with custom workflow and field types.

    If you find any issues, we'd appreciate reports at the public issue tracker. If you could please prefix any issues with "V9: " that would be useful to distinguish them from anything raised for other versions.