I’m proud to announce the first alpha release of Umbraco running on .NET Core!
For the last 9 months we have been working vigorously along with our dedicated community team to get Umbraco up and running on .NET Core. We’ve been continually updating our product roadmap with the latest updates and you can see how far we’ve come since March, and since automated testing in July.
Which brings us to now: this alpha version includes a running backoffice and is just the first alpha release in a series of upcoming releases. Let’s get to the details.
Pssst... when we announced the release of the .NET Core Alpha we did a live warm-up show on YouTube with me, Umbraco founder Niels Hartvig and CMS Project Manager Filip Bech-Larsen. A show where we answered some of the key questions about this release. Watch it here:
What’s included in the alpha version
This version includes the installer and the backoffice. So you can now navigate the backoffice, create document types, content, media and users.
Furthermore, you can now boot Umbraco in Linux or Mac. This is a big step towards Umbraco being cross-platform but there are still some large migrations that need to be done, such as Examine, before it can be fully tested.
Almost the entire backoffice is functional and now we need more complex testing and real-world usages of the backoffice to help find bugs and issues - that’s why we need your help in testing this release!
Who the alpha release is relevant for
This release is mainly addressed to developers who have an interest in helping, testing and finalizing the project. It is still too early to start upgrading packages to use this version, as lots of APIs will still need to be updated or revisited.
Furthermore, since this is an alpha release, you should not expect that any data stored in the database or on the filesystem will work on later versions. In other words - please don’t start solutions on this release that will end in production.
We plan to release beta versions when the migrated CMS is fully functional and ready for package development. At this point, HQ will also start working on HQ packages, like the Starter kit, Forms etc.
How to get started
Follow these instructions to install a new Umbraco .NET core solution using a dotnet template.
First of all, please check the prerequisites list:
- .Net Core 3.1 SDK
- SQL connection string (MS SQL Server/Azure) unless you want to install using SQL CE (Compact Edition) (more details below)
To use the new alpha release, you will need to insert a custom NuGet feed to your sources. This can be done in a command prompt of your choice:
dotnet nuget add source "https://www.myget.org/F/umbracoprereleases/api/v3/index.json" -n "Umbraco Prereleases"
Once this feed is available as a NuGet source, you can install the new Umbraco dotnet template:
dotnet new -i Umbraco.Templates::0.5.0-alpha001
Now that the Umbraco template is available, you can create a new empty Umbraco solution:
dotnet new umbraco -n MyCustomUmbracoSolution
This creates a new project with the name: MyCustomUmbracoSolution. You can now open the newly created project in your favourite IDE (Integrated Development Environment) or continue using the CLI (Command Line Interface) commands.
In CLI the project can be built by navigating to the newly created folder and running the build command:
At this point, the project is ready to be executed:
By default, Umbraco installs without SQL CE support, due to the Windows-only limitation. SQL CE can be added by creating the project with the following command:
dotnet new umbraco --UseSqlCe -n MyCustomUmbracoSolution
Known issues in the Alpha release
As already mentioned, the website part of Umbraco is not implemented yet. The current version only handles the backoffice. While using the alpha beware of the following known issues:
- Restarts during install
- When the Umbraco solution is installed, a restart is required. Right now we need to use IIS/IIS express to handle the next request and start the process again. Sometimes this fails and you need to start the process again
- Authentication on section trees
- Currently, we do not check if the user is authenticated to see a tree
- Previews do not work due to the missing website part
- Members can’t be created, as we’re still using MembershipProviders
- Case sensitive filesystems (Linux and sometimes Mac) creates folders in the project like “~” and “**”, and lots of paths are not requested in the correct casing, yet
- Mac/Linux + Examine/Lucene issue as that assembly still is built for .NET Framework.
- External logins are not supported yet
- No support for Packages currently
These are all known issues meaning you don’t need to report these. If you find other issues that are not already reported, please report them on the GitHub tracker with a title prefixed with “NetCore:”.
Even though this alpha release is a significant milestone for the project, there are still lots of areas to migrate.
Some of the most significant parts that are still to come are:
- Examine migrated to .NET Standard
- Website rendering
- Preview rendering and Signal-R integrations
- Membership providers need to be migrated to ASP.NET Core Identity
- Packages are not available, so no Starter kit or Forms
- ModelsBuilder needs to be updated to use the Roslyn compiler
- Forgot Password functionality
These parts will be released in future alpha or beta releases. We’ll of course make sure to keep you updated in future blog posts so you know when you’re able to test the different parts.
If you'd like to pull down the source code that this template is built from, the latest .NET Core Umbraco branch is on the "netcore/netcore" branch. You can find a list of open issues on the issue tracker. All help and pull requests are very welcome!
We’ve been thrilled to see such significant contributions to this release from across the Umbraco community.
Furthermore, we’ve had some great contributions from members of our community:
- Scott Brady (Rock Solid Knowledge) - migrating Users from ASP.NET Identity to ASP.NET Core Identity
- Ollie P. (Zone) - migrating unit tests
- Cyberdot - migrating configuration
#H5YR to everyone who has helped us on this project so far!
To sum up...
As mentioned earlier, we expect to release multiple alpha versions before we reach the beta versions. We plan to make new versions when more critical bugs are fixed and cool new interesting areas are migrated.
#H5YR and thanks to everyone who decides to give the alpha release a spin and report bugs!