Starting a new projects is always difficult. In my experience, you're always faced with the same questions.
- What technology stack do I use ?
- How do I ensure scalability ?
- Are there going to be additional skills available should I need?
- What is the support like proposed Framework/ Tool?
- How quickly can I get up to speed ?
In most cases. customers don't really care about the details and for the most part only seem to care about the Cost and the Speed with which you can deliver the project.
Typically, they are concerned about how long it will take to get the new application out in front of the users, so they can get started with Build-Measure-Lean loop ala The Lean StartUp
Building new Web Applications with Orchard Core
Over the years we have learned to use CMS based tools like WordPress, Drupal and the like to quickly to be able to push out new applications quickly.
These applications would typically become a rats nest of Plugins and Dependencies just in order to get to some POC or MVP type project and gradually a lot of the backend functionality would then start to get stitched together using other Software Development languages and frameworks and over time the UI would gradually be replaced with whatever the flavour of the month Framework comes into being.
One thing is for sure, software development projects are never actually completed, they just tend to reach different milestones of completion.
The news in September 2019, that the Orchard Core Project reached Release Candidate Stage with a Potential full 1.0 Release in October 2019. I thought I would take a look and learn this new potential tool for rapid prototyping and web application development.
What is Orchard Core Project
Orchard Core is a redevelopment of the free, open source, community-focused Content Management System built on the ASP.NET MVC platform.
Orchard was built on a modern architecture that put extensibility up-front, as its number one concern. All components in Orchard could be replaced or extended. Content is built from easily composable building blocks. Modules extend the system in a very decoupled fashion, where a commenting module for example can as easily apply to pages, blog posts, photos or products.
A rich UI composition system completes the picture and ensures that you can get the exact presentation that you need for your content.
The Orchard Core project, is simply a complete rewrite of this Platform using .Net Core, to provide cross-platform functionality.
Although Orchard Core also consists of two different targets:
- Orchard Core Framework: An application framework for building modular, multi-tenant applications on ASP.NET Core.
- Orchard Core CMS: A Web Content Management System (CMS) built on top of the Orchard Core Framework.
The Orchard CMS supports all major site building strategies:
- Full CMS. In this mode, the website uses a theme and templates to render your content, aiming for little to no custom development at all.
- Decoupled CMS. The site starts off blank, apart from the content management back-end. You create all the templates you need with Razor Pages or MVC actions and access your content via the content services.
- Headless CMS. The site only manages the content, and you create a separate application that will fetch the managed content using GraphQL or REST APIs.
Install Orchard CLI
The Orchard Core provides a handy dotnet CLI tooling to enable developers to quickly generate new projects and modules quickly in order to use this functionality you will need to install the CLI ensuring you also have .net core installed.
To install the CLI simply execute the following command in a terminal window
Creating an Orchard Core CMS website
In this post we are going to start developing a new CMS based website.
We will first create a blank solution file which you can name whatever your solution, in my case I am creating a new blog named geekiam
We can now use the CLI to generate our new CMS based website
we now add our project file to our empty solution, to understand what I am doing here you can read Managing Solution and Project files with the CLI
we can now open our solution with .net rider if you have the command line configured
Start your CMS Website
We can configure Rider to be Run or Debug our website by configuring our Launch Settings. We just need to ensure that our project profile is selected
Once this done you can start the project and your Set Up screen will be available in your browser. Enter the details requested and click finish set up.
You can now login to the admin portal by visiting http://localhost:5000/admin. to continue configuring your application.
I have been waiting for a long time to have a .net core enabled CMS I can use to quickly generate applications. I will be exploring Orchard Core a little more closely over the next few weeks to see how it compares with other tools.