Now we are in .Net core territory with Umbraco v9 (beta), we can utilise the .Net CLI introduced in .Net Core 2.1. Let's have a look at using the CLI to build our Umbraco application.
Note: this was written in reference to v9 Beta 1.
But first, what's a CLI? This is a command line interface, how we interact with the framework tools via command line. Previously as .Net developers, we would usually create and build .Net projects in Visual Studio, but now we can use CLI.
Before we look at Umbraco specific commands, have a wee look here at the .Net CLI. Any Umbraco commands we use are utilising these.
In .Net CLI tools we can create a new project using 'dotnet new' and utilise templates to create a new project with a set of predefined files and config. With Umbraco v9 beta, we can use this command to create a new project with the files we need for an Umbraco project:
dotnet new umbraco -n CRLUmbracov9
This will create a new project called CRLUmbracov9 that we can then build, run and install (see below). However, this creates the new project with default configurations. What if we want to customise? We can use the help comment to see options available:
dotnet new umbraco -h
This will output the help for dotnet CLI new command but also for Umbraco template, lets focus on the Umbraco configurations here:
|v|--version||The version of Umbraco to load using NuGet||string||yes||9.0.0-beta001|
|-P|--PackageTestSiteName||The name of the package this should be a test site for.||text||yes|
|-U|--UseSqlCe||Adds the required dependencies to use SqlCE (Windows only)||text||yes||false|
|-F|--Framework||The target framework for the project||
net5.0 - Target net5.0
|-S|--SkipRestore||If specified, skips the automatic restore of the project on create||bool||yes||false|
|-Fr|--FriendlyName||The friendly name of the user for Umbraco login when using Unattended install (Without installer wizard UI)||text||yes|
|-E|--Email||Email to use for Umbraco login when using Unattended install (Without installer wizard UI)||text||yes|
|-Pa|--Password||Password to use for Umbraco login when using Unattended install (Without installer wizard UI)||text||yes|
|-C|--ConnectionString||Database connection string when using Unattended install (Without installer wizard UI)||text||yes|
For developers looking to get started with the beta, I imagine the option we are used to seeing in the install wizard to use SQLCe will be most useful. This is no longer available by default as Umbraco is now multi platform, so we need to add this during the project set up. Here is how in CLI:
dotnet new umbraco -n CRLUmbracov9 --UseSqlCe
Now we have our project, we can build and run the app via CLI too! First, navigate to the project directory:
Now, we build then run via CLI:
Now, we can access the project in browser (url will be shown in CLI window) to run through the setup as we are used to in Umbraco. Note, you will need to restart the application after install.
If we now want open the project to view & edit code, we can open in VS code using this command:
Now, when in build we can use the watch command to keep the application running and listening for changes while we make changes in code:
dotnet watch run
This keeps the application running, listening for changes to our code it rebuilds and makes these chages immediately available in browser. To stop this in CLI, you can use Ctrl + C.
... and there we are! We have created an Umbraco project, built, run and edited all from command line!