Orchard Harvest 2017–Orchard Core CMS
For the last presentation of the day, Sébastien explained what Orchard Core is all about. Orchard Core runs on ASP.NET Core, and as a consequence is leaner, faster, and cross-platform. One big change is that its content is persisted as documents instead of relational tables.
Other differences include:
- The admin theme is now a setting.
- The content item editor has a new live preview feature, content editor, an flow part that largely replaces the layout feature of Orchard 1. The whole thing is responsive and easy to work with.
- A navigation is one single content item, with its hierarchy persisted as a single document. This is very fast, but preserves the extensibility of Orchard 1: menu items are still themselves content items, it’s just that they are persisted all together in the containing menu content item’s document. This also helps versioning the menu as a whole, as well as efficiently caching it.
- The order of parts in type definitions is easier to change.
- There are named parts.
- Blogs are just lists of blog posts.
- Tokens are input into Handlebar templates (for example in Autoroute).
- The widget editor supports drag and drop between zones, and has an undo button.
- Widgets can be used in “flow pages”, in which case their editor is displayed inline in the content item editor.
- Recipes can have dynamic values and define variables. They are also JSON documents.
- It’s crazy fast. 15ms to render a blog with widgets without caching on a laptop in Debug mode under load (2000 rps). This is way faster than Orchard 1 with caching on.
- Creating and setting up a new tenant is instantaneous. So is enabling a module.
- Memory usage: tenants are lazily loaded on their first requests, and 500 tenants fit in 2GB on a 64 bit machine.
Migrating data will not be trivial, and will have to go through import/export. Migrating modules should be easy. Modules are like a mini-MVC application, much like in Orchard 1.
You can follow the progress on https://github.com/OrchardCMS/Orchard2/wiki/Roadmap
It’s also a great time to start contributing!