Orchard Core CMS as a Decoupled CMS Develop ASP.NET Core Websites using Orchard Core CMS.

Using Orchard Core CMS as a Decoupled CMS for ASP.NET Core Websites

There are multiple ways to develop a website using Orchard Core CMS. The documentation specifically talks about 3 different strategies to build a website using Orchard Core CMS: Full CMS, Decoupled CMS, and Headless CMS. I've developed websites using all three strategies, but my favorite of the 3 strategies to begin with when training ASP.NET Core developers on Orchard Core CMS is as a Decoupled CMS. Before I talk about that further, however, let's review each of these strategies.

Full CMS

When using Orchard Core CMS as a Full CMS, the entire website is served by Orchard Core CMS using a custom website theme, modules, widgets, content types, content parts, shapes, and other features available to the Orchard Core CMS website. The frontend and backend of the website are tightly coupled and can leverage all the features of Orchard Core CMS. Developing a website using Full CMS will require an in-depth knowledge of Orchard Core CMS. ASP.NET Core developers using ASP.NET Core MVC will be familiar with the underlying technology, but will still need to learn quite a bit of knowledge specific to Orchard Core CMS. That being said, you can pretty much count on this being the case for any ASP.NET Core CMS.

Decoupled CMS

When used as a Decoupled CMS, Orchard Core CMS is used for the backend while the frontend is built using ASP.NET Core MVC, Razor Pages, or similar framework. The frontend accesses the content in Orchard Core CMS using content services. As the name suggests, the frontend and backend are decoupled, allowing you more flexibility on how you develop the frontend of the website. Although you still need to understand the content services and how to best organize the content in the Orchard Core CMS backend, this requires a much smaller subset of knowledge to build an Orchard Core CMS Website compared to using the Full CMS strategy.

Headless CMS

Using Orchard Core CMS as a Headless CMS provides complete separation of the frontend and backend of your website. The frontend is completely agnostic of Orchard Core CMS and accesses content using an API. Orchard Core CMS supports GraphQL out-of-the-box or you can develop your own API. This is an attractive option for Single-Page Applications (SPA) built using a JavaScript framework, like Angular, React, or Vue. One could even use Orchard Core CMS a a static site generator, too. This requires even less development knowledge of Orchard Core CMS with the majority of your Orchard Core CMS skills being focused on the best way to architect the content.

Decoupled is a Great Place to Start for New Orchard Core CMS Developers

As mentioned above, one of the biggest factors to choosing one strategy over another is your Orchard Core CMS development skills. Like all content management systems, Orchard Core CMS has a learning curve, and choosing the Full CMS experience will require in-depth knowledge of Orchard Core CMS. On the other hand, developing a website using Orchard Core CMS as a Decoupled CMS or Headless CMS will typically require less development knowledge of Orchard Core CMS as you won't need to develop a theme and possibly any custom modules.

If you're a .NET Core Developer with experience in ASP.NET Core MVC or Razor Pages and concerned with the learning curve of Orchard Core CMS, we highly recommend to first start using Orchard Core CMS as a Decoupled CMS. This will allow you to leverage both your current web development skills and the content management services of Orchard Core CMS without concerning yourself with developing custom Orchard Core CMS themes and modules, which quite frankly, are the most challenging parts of being an Orchard Core CMS Developer. Again, Orchard Core CMS is no different in this regards to any other .NET Core CMS. If you wish to develop reusable themes and modules in the CMS, you must acquire more knowledge and skill about the CMS, which has a much more demanding learning curve.

When I train .NET Core Developers on Orchard Core CMS I often start by developing a web application using Razor Pages or ASP.NET Core MVC using Orchard Core CMS as a Decoupled CMS. In my opinion, and in the opinion of most of the developers I train, it offers a huge bang for the buck with far less friction than learning the nuts and bolts of theme and module development. Developers feel comfortable using their chosen web development stack while benefiting from the content management services offered by Orchard Core CMS.

If you're developing marketing websites, which often have very little complexity, you can easily develop all your websites using Orchard Core CMS as a Decoupled CMS. And then later as your confidence, skills, and knowledge of Orchard Core CMS grows, you have the option to begin developing custom themes and modules for Orchard Core CMS to deliver websites using the Full CMS strategy. Or, not :) Using Orchard Core CMS as a Decoupled CMS or Headless CMS may be all that you ever need!