OrchardCore
Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
Top Related Projects
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Home of the Joomla! Content Management System
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
WordPress, Git-ified. This repository is just a mirror of the WordPress subversion repository. Please do not send pull requests. Submit pull requests to https://github.com/WordPress/wordpress-develop and patches to https://core.trac.wordpress.org/ instead.
Verbatim mirror of the git.drupal.org repository for Drupal core. Please see the https://github.com/drupal/drupal#contributing. PRs are not accepted on GitHub.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable, and developer-first.
Quick Overview
Orchard Core is an open-source, modular, and multi-tenant application framework built with ASP.NET Core. It provides a flexible content management system (CMS) and a reusable application framework that allows developers to build modular, customizable web applications.
Pros
- Highly modular architecture, allowing for easy customization and extension
- Built on modern ASP.NET Core technology, providing excellent performance and cross-platform support
- Multi-tenant capabilities out of the box
- Active community and regular updates
Cons
- Steep learning curve for developers new to the framework
- Documentation can be incomplete or outdated in some areas
- Some features may require additional setup or configuration compared to simpler CMS solutions
Code Examples
- Creating a custom content type:
public class BlogPost : ContentPart
{
public string Title { get; set; }
public string Content { get; set; }
public DateTime PublishDate { get; set; }
}
- Registering a custom content type:
public class Startup : StartupBase
{
public override void ConfigureServices(IServiceCollection services)
{
services.AddContentPart<BlogPost>();
}
}
- Querying content items:
var contentItems = await _contentManager.Query<ContentItem, ContentItemIndex>()
.Where(x => x.ContentType == "BlogPost")
.OrderByDescending(x => x.CreatedUtc)
.Take(10)
.ListAsync();
Getting Started
- Install the Orchard Core Templates:
dotnet new -i OrchardCore.Templates::1.0.0-rc2-*
- Create a new Orchard Core CMS web application:
dotnet new occms
- Run the application:
dotnet run
-
Open a web browser and navigate to
http://localhost:5000
to access the setup page. -
Follow the setup wizard to configure your Orchard Core application.
Competitor Comparisons
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Pros of ASP.NET Core
- More comprehensive framework for building web applications
- Larger community and ecosystem
- Better performance and scalability for large-scale applications
Cons of ASP.NET Core
- Steeper learning curve for beginners
- Less focused on content management scenarios
- Requires more setup and configuration for CMS-like functionality
Code Comparison
ASP.NET Core (Startup.cs):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddRazorPages();
}
Orchard Core (Startup.cs):
public override void ConfigureServices(IServiceCollection services)
{
services.AddOrchardCms();
}
Summary
ASP.NET Core is a more general-purpose web development framework, offering greater flexibility and performance for a wide range of applications. Orchard Core, built on top of ASP.NET Core, provides a more specialized solution for content management systems with easier setup for CMS-specific features. While ASP.NET Core requires more initial configuration, it offers more control over the application structure. Orchard Core simplifies CMS development but may be less suitable for non-CMS projects.
Home of the Joomla! Content Management System
Pros of Joomla
- Larger community and ecosystem with more extensions and templates
- Easier learning curve for beginners
- Built-in multilingual support
Cons of Joomla
- Less flexible and modular architecture
- Slower performance, especially for larger sites
- More challenging to customize and extend
Code Comparison
Joomla (PHP):
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
OrchardCore (C#):
using OrchardCore.ContentManagement;
using OrchardCore.ContentManagement.Display.Models;
using OrchardCore.DisplayManagement.ModelBinding;
using OrchardCore.DisplayManagement.Views;
Joomla uses a more traditional PHP approach with global functions and constants, while OrchardCore leverages C# and .NET Core's modular architecture. OrchardCore's code tends to be more organized and follows modern development practices.
Joomla's extensive plugin system allows for easy functionality extension, but OrchardCore's modular design provides greater flexibility and scalability. OrchardCore's performance is generally better, especially for larger and more complex websites.
While Joomla has a larger community and more readily available extensions, OrchardCore's growing ecosystem and modern architecture make it increasingly attractive for developers seeking a more robust and customizable CMS solution.
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
Pros of Umbraco-CMS
- More mature and established CMS with a larger community and ecosystem
- User-friendly interface, making it easier for content editors and non-technical users
- Extensive documentation and learning resources available
Cons of Umbraco-CMS
- Less flexible and modular architecture compared to OrchardCore
- Slower adoption of newer technologies and frameworks
- More opinionated in its approach, which may limit customization options
Code Comparison
Umbraco-CMS (C# controller example):
public class ProductsController : RenderMvcController
{
public ActionResult Index(ContentModel model)
{
return CurrentTemplate(model);
}
}
OrchardCore (C# controller example):
public class ProductsController : Controller
{
private readonly IOrchardHelper _orchardHelper;
public ProductsController(IOrchardHelper orchardHelper)
{
_orchardHelper = orchardHelper;
}
public async Task<IActionResult> Index()
{
var products = await _orchardHelper.GetContentItemsAsync(query => query
.Where(x => x.ContentType == "Product"));
return View(products);
}
}
The code comparison shows that OrchardCore offers more flexibility and control over content retrieval and rendering, while Umbraco-CMS provides a simpler, more streamlined approach for basic content management tasks.
WordPress, Git-ified. This repository is just a mirror of the WordPress subversion repository. Please do not send pull requests. Submit pull requests to https://github.com/WordPress/wordpress-develop and patches to https://core.trac.wordpress.org/ instead.
Pros of WordPress
- Larger ecosystem with extensive plugins and themes
- Easier learning curve for non-technical users
- Wider community support and resources
Cons of WordPress
- Less flexible for custom development
- Potential security vulnerabilities due to popularity
- Performance can be slower, especially with many plugins
Code Comparison
WordPress (PHP):
function register_my_menus() {
register_nav_menus(
array(
'header-menu' => __( 'Header Menu' ),
'footer-menu' => __( 'Footer Menu' )
)
);
}
add_action( 'init', 'register_my_menus' );
OrchardCore (C#):
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddOrchardCms();
}
}
WordPress uses PHP and follows a more traditional procedural approach, while OrchardCore is built on .NET Core and uses a modular, object-oriented architecture. OrchardCore offers more flexibility for developers but may require more technical expertise. WordPress is easier to set up and use out of the box, especially for content-focused websites, but may be less suitable for complex, custom applications compared to OrchardCore.
Verbatim mirror of the git.drupal.org repository for Drupal core. Please see the https://github.com/drupal/drupal#contributing. PRs are not accepted on GitHub.
Pros of Drupal
- Larger community and ecosystem with extensive modules and themes
- More mature project with a longer history and established best practices
- Better support for multilingual and localization features out of the box
Cons of Drupal
- Steeper learning curve, especially for developers new to the platform
- Can be more resource-intensive, potentially impacting performance on smaller servers
- Upgrading between major versions can be complex and time-consuming
Code Comparison
Drupal (PHP):
function example_module_menu() {
$items['example'] = array(
'title' => 'Example Page',
'page callback' => 'example_page',
'access arguments' => array('access content'),
);
return $items;
}
OrchardCore (C#):
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddOrchardCms();
}
}
The code snippets highlight the different approaches: Drupal uses a hook system in PHP, while OrchardCore leverages ASP.NET Core's dependency injection in C#. OrchardCore's setup appears more concise, but Drupal's approach offers more granular control over routing and access.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable, and developer-first.
Pros of Strapi
- More lightweight and focused on headless CMS functionality
- Easier setup and configuration for simple projects
- Better support for JavaScript/Node.js developers
Cons of Strapi
- Less flexible for complex, enterprise-level applications
- Smaller ecosystem and community compared to Orchard Core
- Limited built-in features for traditional CMS scenarios
Code Comparison
Strapi (JavaScript):
module.exports = {
async findOne(ctx) {
const { id } = ctx.params;
const entity = await strapi.services.restaurant.findOne({ id });
return sanitizeEntity(entity, { model: strapi.models.restaurant });
},
};
Orchard Core (C#):
public async Task<IActionResult> Get(string contentItemId)
{
var contentItem = await _contentManager.GetAsync(contentItemId);
if (contentItem == null)
return NotFound();
return Ok(contentItem);
}
Both repositories offer content management solutions, but Strapi focuses on headless CMS functionality with a JavaScript-centric approach, while Orchard Core provides a more comprehensive .NET-based CMS framework. Strapi is generally easier to set up for simple projects, while Orchard Core offers more flexibility and features for complex, enterprise-level applications.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Orchard Core
Orchard Core is an open-source, modular, multi-tenant application framework and CMS for ASP.NET Core.
Orchard Core consists of two distinct projects:
- 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.
Build Status
Stable (release/2.0.0
):
Nightly (main
):
Project Status: v2.0.0
The software is production-ready, and capable of serving large mission-critical applications as well, and we're not aware of any fundamental bugs or missing features we deem crucial. Orchard Core continues to evolve, with each version bringing new improvements, and keeping up with the cutting-edge of .NET.
Check out the Reference of Built-in Modules to see what kind of features Orchard Core provides built-in.
See the issue milestones for information on what we have planned for the next releases and what are the priorities.
Getting Started and Documentation
The documentation can be accessed under https://docs.orchardcore.net/. See the homepage for an overview, and the getting started docs on how to start building apps with Orchard Core. If you'd just like to test drive Orchard Core as a user, check out Test drive Orchard Core.
Help and Support
Do you need some help with Orchard Core? Don't worry, there are ways to get help from the community:
- Did you find a bug or have a feature request? Open an issue in the issue tracker.
- Do you have a question about how to do something with Orchard Core, or would like a second opinion on your code? Open a discussion.
- Do you want to chat with other community members? Check out our Discord server.
Get in Touch
- X (Twitter)
- Discord
- Please report security issues privately, via email, to contact@orchardcore.net.
Local Communities
ä¸æèµæº
Contributing
It's great that you're thinking about contributing to Orchard Core! You'd join our wonderful community of contributors.
Check out the docs on contributing to Orchard Core.
Preview Package Feed
NuGet package repository hosting for the preview feed is graciously provided by Cloudsmith. Check out the docs on using the preview package feed.
Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store, and share packages in any format, to any place, with total confidence.
Code of Conduct
See our Code of Conduct.
.NET Foundation
This project is supported by the .NET Foundation.
Top Related Projects
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Home of the Joomla! Content Management System
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
WordPress, Git-ified. This repository is just a mirror of the WordPress subversion repository. Please do not send pull requests. Submit pull requests to https://github.com/WordPress/wordpress-develop and patches to https://core.trac.wordpress.org/ instead.
Verbatim mirror of the git.drupal.org repository for Drupal core. Please see the https://github.com/drupal/drupal#contributing. PRs are not accepted on GitHub.
🚀 Strapi is the leading open-source headless CMS. It’s 100% JavaScript/TypeScript, fully customizable, and developer-first.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot