VS Code; Visual Studio for Mac; JetBrains Rider; Visual Studio Prerequisites. Visual Studio 2019 16.3 or later, with: Universal Windows Platform workload installed. Mobile development with.NET (Xamarin) workload installed. The iOS Remote Simulator installed (for iOS development) A working Mac with Visual Studio for Mac, XCode 8.2 or later. Still Visual Studio Code is 'only' a GitHub Atom fork. It's a great editor, but it's nothing when compared with original Visual Studio IDE running on Windows with ReSharper onboard. Speaking of which There's a new player in the game: JetBrains Rider. I tried Rider may be 2-3 months ago and it was much much slower than Visual Studio 2017. I also had problems with font rendering (I use DPI 100%) and all dialogs like open file are non-native, but from Java.
In my last article I did walk you through in how to create a Orchard Core Theme from scratch. In this post I show how to create a Orchard Core Recipe.
This set of posts will cover several parts of the Orchard Core components and, hopefully, by the end it will become much clearer how all of them interact with each other. So for now, the planning is:
- Part 01: The basic Orchard Core project.
- Part 02: Create a Orchard Core Theme.
- Part 03: Create a Orchard Core Recipe. (This article)
- Part 04: Create a Orchard Core Module.…
As part of my learning path, because I'm learning how to develop with Orchard and i'm working with dotnet, I perform my proof of concept on:
- MacBook Pro (Retina, 13-inch, Late 2012) * Running MacOS Catalina (10.15.5)
- For IDE, I'm using: * Jetbrains Rider 10.15.5 (19F101) * Visual Studio Community 2019 for Mac (Preview) * Version 8.7 Preview (8.7 build 1077)
Why am I using both Rider and Visual Studio for Mac? Well, I decided to try it out with the Rider, however from time to time this IDE becomes possessed by the Evil and presents an erratic behavior (eg: in renaming files, doesn't allow fill the name). So since I'm still in the beginning, I'm alterning between Rider and the VS for Mac, but VS for MAC isn't VS for Windows. Rider isn't like VS for Windows either but seems more alike than VS for Mac…. and I have a license for Rider :).
An Orchard Core Recipe, like much as a cooking recipe, is a document where we define a set of steps to configure one application. In this context, a recipe is a json file with the import and configuration steps that will be executed by Orchard Core.
Same as before, and most likely in the future, I will create a new netcore library for this recipe and then delete the default Class1.cs to get an really empty project.
In order to the recipe be recognized by the Orchard Core Website, I need to edit the csproj and update the project file:
I need to reference ‘orchardcore.recipe.Targets' in order to this project be binded as a recipe.
In this post I'll demonstrate the bare bones of creating a Orchard Core Recipe. If you want a recipe with an template you may merge the information of this post with the previous post, where i have demonstrated how to create a Orchard Core Theme.
Create a new recipe is quite simple, create a ´Recipes' folder at the root of the project.
Now create the recipes json file, following the structure [recipe name].recipe.json.
The recipe format is quite simple, it has some identification fields and set of steps:
From this configuration, the parameter ‘issetuprecipe' is quite important hence is the parameter that indicate if this recipe will appear on setup or not.
For this post, our recipe will have two steps: ‘feature' and ‘themes'. The ‘feature' step indicate all features and themes that are enable in this recipe, and the ‘themes' step will configure which theme will be used in the admin panel and in the site.
Recipe Configuration
This excerpt will configure the Recipe metadata, be aware that the ‘issetuprecipe' is set ‘true' so it will be available at setup time.
Recipe Steps
For clearaty, the json below only referes the more relevant parts.
To check available features, checkout the default recipes.To check available recipes steps, checkout the documentation.
In the ‘feature' step I'm enabling not only the ‘TheAdmin', 'SafeMode' themes, but also the theme we created in the last post ‘OrchardCoreTheme.Freelancer' (whih is the name of the theme project, rather than the theme name set on the metadata file. Otherwise the theme will not be binded).
Before Starting the Application
I need to go to the OrchardCoreCMS project and reference this recipe project, so the CMS can add it to the recipes section.
Clean, Build and Start the Application
So let start the application and fill the setup page. As you may notice, there is a new recipe named 'Freelancer site'.
Filling the form.
And by finishing the process we are redirected to the choosen theme.
By accessing the admin page, just type 'https://localhost:5001/admin'. I fill the login data and then follow the steps to reach the Theme catalog, by accessing: Design -> Themes:
We can confirm that the Freelancer Theme is chosen. And by accessing Configuration -> Recipes:
We can confirm that the Freelancer recipe is also available.
Last but not least, by accessing Configuration -> Feature we can check all features enabled in the recipe are also enable here:
Tcharan…. We are done
Get around the Orchard Core source code and documentation and get acquainted with the available features, steps and the way the content parts and content type are described.
Create a new recipe is quite simple, create a ´Recipes' folder at the root of the project.
Now create the recipes json file, following the structure [recipe name].recipe.json.
The recipe format is quite simple, it has some identification fields and set of steps:
From this configuration, the parameter ‘issetuprecipe' is quite important hence is the parameter that indicate if this recipe will appear on setup or not.
For this post, our recipe will have two steps: ‘feature' and ‘themes'. The ‘feature' step indicate all features and themes that are enable in this recipe, and the ‘themes' step will configure which theme will be used in the admin panel and in the site.
Recipe Configuration
This excerpt will configure the Recipe metadata, be aware that the ‘issetuprecipe' is set ‘true' so it will be available at setup time.
Recipe Steps
For clearaty, the json below only referes the more relevant parts.
To check available features, checkout the default recipes.To check available recipes steps, checkout the documentation.
In the ‘feature' step I'm enabling not only the ‘TheAdmin', 'SafeMode' themes, but also the theme we created in the last post ‘OrchardCoreTheme.Freelancer' (whih is the name of the theme project, rather than the theme name set on the metadata file. Otherwise the theme will not be binded).
Before Starting the Application
I need to go to the OrchardCoreCMS project and reference this recipe project, so the CMS can add it to the recipes section.
Clean, Build and Start the Application
So let start the application and fill the setup page. As you may notice, there is a new recipe named 'Freelancer site'.
Filling the form.
And by finishing the process we are redirected to the choosen theme.
By accessing the admin page, just type 'https://localhost:5001/admin'. I fill the login data and then follow the steps to reach the Theme catalog, by accessing: Design -> Themes:
We can confirm that the Freelancer Theme is chosen. And by accessing Configuration -> Recipes:
We can confirm that the Freelancer recipe is also available.
Last but not least, by accessing Configuration -> Feature we can check all features enabled in the recipe are also enable here:
Tcharan…. We are done
Get around the Orchard Core source code and documentation and get acquainted with the available features, steps and the way the content parts and content type are described.
Jetbrains Rider Debugger
In the next article, I explained how we can develop a custom Orchard Core Recipe. This was pretty simple, but it covers the basics of the recipes.
- Official site: https://www.orchardcore.net
- Orchard Doje by Lombiq: https://orcharddojo.net/orchard-resources/CoreLibrary/
- Lombiq Youtube Channel: https://www.youtube.com/channel/UCDVUxCz2RvkgTbA0wAYKwRA
- Orchard CMS net Youtube Channel: https://www.youtube.com/channel/UCOPLovO0E8kfliE5bF9Y2Yg
- Orchard Skills Youtube Channel: https://www.youtube.com/channel/UCTwti4IV-uER89I39lTln0Q
- Visual Studio for Mac: https://visualstudio.microsoft.com/vs/mac/
- Jetbrains Rider: https://www.jetbrains.com/rider/
- Start Bootstrap: https://startbootstrap.com
- Liquid Templates: https://shopify.github.io/liquid/
- Static files in ASP.NET Core: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1
- OrchardCore Razor Extensions: https://docs.orchardcore.net/en/dev/docs/reference/core/Razor/
- Orchard Core Recipe: https://docs.orchardcore.net/en/dev/docs/reference/modules/Recipes/