Our blog contains the activity stream of Orchard Dojo: general news, new resources or tutorials are announced here.

Content Tree Module, Orchard Core Admin UI experience renewal survey - This week in Orchard (06/06/2025)

This time, you can see a fascinating demo of the Content Tree Module! But first, let's look at our other topics, like adding GraphQL support for querying content items by status from the Content Picker Field, fixing binding form input in the Coming Soon theme, and improving the Register User Task. Don't forget to fill out our Orchard Core Admin UI experience renewal survey to help shape the future of Orchard Core!

Featured tags

IIS
API
SMS
SEO
MCP
All tags >

Live from Seattle - Orchard Harvest Day 3

This is the third day of Orchard Harvest! The downside is that it's the last day, though it's really great that this is the first Harvest with three days (instead of two). Sébastien is today's keynote speaker sharing his long-term vision regarding Orchard. Sébastien also enumerates the important aspects of Orchard and its community, most of them centered around openness. To make Orchard better, we need to learn from other systems and communities! Next on stage is Nicholas Taylor Mullen from Microsoft, talking about ASP.NET vNext as a continuation to yesterday's talk with Scott Hunter and Eilon Lipton. We've seen some of the newest features of Visual Studio too that were built to work together with ASP.NET vNext. Our third speaker today is Bing Huan Chio talking about how and why the backend system for the Halo Waypoint blog was migrated to Orchard. Since they were newcomers to Orchard at the beginning of their project at their setup required an API module, since the Orchard application served as a backend system. The REST API module that was created for this project is going be open-sourced soon and is a good candidate for adding it to the new modules of Orchard 1.9. After that a short presentation came to announce the results of the Orchard Spring Harvest Challenge. We made a live "interview" with the winner - Daniel Dabrowski - via Skype to present his great Orchard project, the MiniProfiler. And then finally, the last presentation is by us, Lombiq, on how the Orchard CMS SaaS, DotNest was created and how it is maintained. In the first half, Zoltán is talking about the requirements of such a software and what kind of tools we've built to fulfill them and then Benedek was on stage to describe the deployment process currently used by Lombiq (as well as some retrospective case-study about its development) that enables us to maintain all our websites (including DotNest, of course) and deploy them without any downtime. That's it for Orchard Harvest for this year, see you next time!

Live from Seattle - Orchard Harvest Day 2

The second day of Orchard Harvest is on! Our keynote speaker is Damien Edwards, Senior Program Manager in ASP.NET talking about how to use AngularJS in ASP.NET. He shares a lot of pieces of knowledge on how to build powerful single-page applications with a small amount of code. AngularJS is a client-side MVC framework with a ton of features that allow you to write input-heavy UI with highly reusable code, it's actually quite Orchard-y! On a sidenote, we at Lombiq also use AngularJS for most of our projects, including the ones we create for our clients and DotNest too! The next presentation is by Sébastien again, talking about adapting and using Bootstrap-based themes for Orchard websites. Sébastien walks us through the basic structure and usage of Bootstrap, what are the available solutions if you'd like to use a Bootstrap-based theme for your website and how and why he built a new theme called TheBootstrapMachine for the ASP.NET blogs. Next on stage is Sipke, giving us an in-depth session about the usage of the Workflows module through real-life examples. The last presentation before the luch break is the Orchard developers respresenting AMC Theatres: Travis Maddox and Adam Anderson. They are sharing with us their experiences about Orchard and how they built an extremely content-heavy website. They described in-depth their server architecture, performance-related experiences and results due to recent updates and site-load statistics. We also heard about how they upgraded the site with the major Orchard version and the new features and bits added to the site to enhance user experience. <LunchBreak /> After the break, Scott Hunter and Eilon Lipton talk about the future of .NET in reflection to the recently announced news regarding the .NET platform. Scott tells about some of the architectural aspects of the future generations of .NET and ASP.NET vNext. After that Eilon is taking preview version of Visual Studio 2014 for a ride to show us the basics of an ASP.NET vNext application. And then the Sébastien show is on once again! He mentions the current pressing matters of the Orchard ecosystem, like the bugs waiting to be fixed, the documentation that needs update and extensions, along with some other tasks for the near future: A very important feature currently under development by IDeliverable is the AuditTrail module. Besides, the Content Deployment module by Damien Clarke is also a good candidate for being added to the core. The localization capabilities in terms of content management definitely need some love. New admin theme (under development by Antoine), including better content organization (e.g. like the Tree by Bertrand). Adding/fixing new features to the gallery: generating the downloadable packages based on VCS changes (so module developers don't need to care about creating releases for the gallery too) and displaying information about the modules' compatibility with different Orchard versions. See you tomorrow with more Orchard Harvest news!

Live from Seattle - Orchard Harvest Day 1

The third Orchard Harvest conference, held in Seattle, just began! Orcharders from all around the world gathered together at the Microsoft campus to share their experiences about their favourite CMS. The keynote by Ylan and Bertrand got us up to speed with the current news about Orchard. Ylan gave us a warm welcome and introduced some of the well-known participants to the community. After that, Bertrand showed us historical and recent statistics (along with some funny pictures) about Orchard, the community and the contributors. In the second session, aka "the Sébastien show", the benevolant dictator of Orchard is walking us through the process and details of migrating the ASP.NET blogs to Orchard. 750 blogs hosted by 4 Azure Web Sites that run on only one Large Virtual Machine. Sébastien also talked about interesting technical details, how the migration from the old system was executed and then the conclusion came: "Orchard is fast and easy to use". Besides, the tool that was written to serve as a bridge between the old system's content and the new one (working with BlogML format and Orchard recipes) will be publicly available soon. The next session is by Jorge and Eric from Onestop: Jorge is walking us through the development and usage of the Onestop.Layout module that enables you to create custom, dynamically rearrangeable layouts, templates and slideshows. After that, Eric talked about master-child theming. The module is open-source and avaiable on BitBucket (along with other Onestop modules)! The last session before the lunch break is by Piotr from Proligence: Piotr is talking about how they adopted Orchard and the fact that they (and their clients) are more than happy with this decision. Proligence shares some of their modules with community as open source projects on BitBucket, like a unit testing framework, the Astoria framework and the PowerShell CLI. <LunchBreak /> After the break Samuel Goldenbaum from Hellocomputer (CTO) is talking about their digital agency based in Johannesburg and the some of the projects they delivered to big clients, like Toyota, the Jamaican Tourism Board and FCB South Africa. The latter project also involves the creation of an Orchard backend for serving content to mobile applications when attending conferences. Next up is the representatives of MS Open Tech, Ross Gardler and Roopali Kaujalgi. Ross is talking about the company and its relation to Microsoft, how they are working with open-source technologies and spreading the word. In the second half of the presentation Roopali is showing us how to use the Microsoft Azure Media Services module, that was recently integrated into the Orchard codebase - this module's purpose is to serve media (mostly videos) to users visiting Orchard websites. The last presentation today is Steve Taylor's session about the future of widgets in Orchard, Web Components and Polymer.js.

Checking your infoset data consistency after upgrading from 1.x to 1.8+

Many Orchard developers, including ourselves act as early adopters of the Orchard source and use the code from the 1.x and other work-in-progress branches. While it gives us the opportunity to try the new features and get the latest bugfixes, some changes introduce important bugs every now and then. That was the case lately on the 1.x branch, when a problem surfaced regarding the infoset storage: for shifted, versionable content parts the infoset data was not saved in the ContentItemVersionRecord table, but into the ContentItemRecord table instead. Sébastien discovered this issue before 1.8 release and provided a method to fix it. At this moment, we are in the middle of upgrading all our sites to Orchard 1.8+ (+ means we are running 1.x, of course) and after careful testing in our local and staging environments we'll soon hit the big red button to make it go live: every Lombiq-related website will run on the latest source, that includes every DotNest tenant too! While upgrading your sites and testing the fix for the infoset storage, you may need to check if your data was really restored to its desired state, so here's a little help: below is an SQL-script that you can run against your DB, which checks if there's any corrupted infoset entry left, so you can verify if the upgrade mechanism worked. USE [MyDatabase]GOSELECT Item.Id AS ItemId, VersionItem.Id AS VersionItemId FROM [dbo].[MyPrefix_Orchard_Framework_ContentItemRecord] AS Item INNER JOIN [dbo].[MyPrefix_Orchard_Framework_ContentItemVersionRecord] AS VersionItem ON Item.Id = VersionItem.ContentItemRecord_id WHERE VersionItem.Latest = 1 AND VersionItem.Data IS NULL AND Item.Data IS NOT NULL ORDER BY Item.IdGO Happy upgrading!

Orchard Spring Harvest Challenge has begun!

In case you haven't heard from the Lombiq content network and its neighbours, a module competition named Orchard Spring Harvest Challenge has begun yesterday! The aim of this contest is to give Orchard module developers some more motivation to upgrade their old modules to Orchard 1.8, or create new ones that are compatible with latest version of Orchard. You can find more information on the event's (DotNest-hosted) website.

Advanced Orchard: accessing other tenants' services

Many using Orchard's multi-tenancy feature sooner or later want to share data between tenants or generally, execute some operations on other tenants from one tenant. This is possible! Let's see how. First some core Orchard fundamentals: Orchard creates so called shells for tenants. These shells describe that sub-application what a tenant is, among others the shell also has its own Autofac IoC container. This container deals with all the dependencies that are injected or otherwise requested. The interesting thing is that you can access the shell - the shell context - of all running tenants and through it also their IoC container. Now if you have the container you can make dependency resolution calls on it - what means that you can resolve services from that shell, i.e. that tenant. public class TenantAccessDemo { // ShellSettingsManager lets you access the shell settings of all the tenants. private readonly IShellSettingsManager _shellSettingsManager; // OrchardHost is the very core Orchard service running the environment. private readonly IOrchardHost _orchardHost; public TenantAccessDemo(IShellSettingsManager shellSettingsManager, IOrchardHost orchardHost) { _shellSettingsManager = shellSettingsManager; _orchardHost = orchardHost; } public void UseServicesFromTenant() { // Fetching the shell settings for a tenant. This is more efficient if you have many tenants with the Lombiq Hosting Suite, // see below. var tenantShellSettings = _shellSettingsManager.LoadSettings().Where(settings => settings.Name == "TenantName").Single(); var shellContext = _orchardHost.GetShellContext(tenantShellSettings); // Creating a new work context to run our code. Resolve() needs using Autofac; using (var wc = shellContext.LifetimeScope.Resolve<IWorkContextAccessor>().CreateWorkContextScope()) { // You can resolve services from the tenant that you would normally inject through the constructor. var tenantSiteName = wc.Resolve<ISiteService>().GetSiteSettings().SiteName; // ... } } } If you're operating a multi-tenant environment you may also want to look at the Lombiq Hosting Suite: among others it has a Maintenance feature that you can use to run code in the context of tenants in a safe and scheduled way. Also it has an extended ShellSettingsManager that stores shell settings in the database: this means you can have any number of tenants, you can even fetch their settings by name or you can page when listing them and you don't have to take care about all the Settings.txt files in App_Data.

Beginning with Orchard: what to start with?

So you'd like to begin exploring Orchard because somebody sold Orchard to you. This is great! Now probably your next question is: how should I start, how can I try Orchard in action? Glad you asked. There are several simple and less simple ways, all free, so let's see. We'll start with the easy ways and build up the tension so you end up with the most complicated one if you want to become an Orchard developer. Going on a test drive with "Try Orchard!" No registration, no setup, nothing required, you can just go to Try Orchard!, open one of the continuously re-installed demo sites and play with it. This is the simplest way of taking the first steps with Orchard. Be aware though that Try Orchard! is really just for testing: since the demo sites are wiped out hourly you don't try to publish your blog there! Creating an Orchard site on DotNest DotNest is the Orchard SaaS provider: this means that you can simply register and create Orchard websites that run in the cloud without any hassle. Your website will just work: you don't have to deploy and later upgrade it, you can just use it. With DotNest you can try out Orchard very simply, very quickly and since your website is already hosted for you you can also show it to everybody. Apart from getting used to the user interface and features of Orchard you can also get into the basics of Orchard theme development with it and style and customize your Orchard website in a lot of ways. Convenience does come with disadvantages: due to the architecture of DotNest you can't install custom modules, so you have to use what is already available (that however should be enough for a big part of websites). Creating an Orchard website on Azure Web Sites Still not very complicated but a bit more advanced than using DotNest is going with Azure Websites. On MAWS after a free registration you can create websites from the Azure Gallery where you can select Orchard to deploy in one click too. Your Orchard site on MAWS will be completely under your control: you can install any module and theme you want too. However this also comes with responsibilities: you have to maintain your website yourself, upgrade and fix it as necessary. Installing Orchard locally via WebMatrix The first two options showed you the quickest ways of beginning to use Orchard that don't require you to install anything on your computer. Now we're getting into the realm of running Orchard on your local computer! WebMatrix is a simple development toolbox that you can also use to install and run Orchard on your box, as explained in the Orchard documentation. This gives you even more control but also more work to do: you can do what you want with your local Orchard instance, you can even start writing code for your custom Orchard theme or module and run those too. From WebMatrix it's also relatively easy to deploy your Orchard site to a public host. However with this option you have to maintain your site, fix any issues that third-party modules you install may cause and you have to keep Orchard up-to-date yourself. Running Orchard locally from the full source This is the real hardcore option, but you'll need to do this if you want to be a black-belt Orchard developer. You can download the full Orchard source either as a zip file from under the Releases section of the project site or you can even clone the repository via git from https://github.com/OrchardCMS/Orchard.git. You'll need Visual Studio to open, build and run the source: but since you're an aspiring developer this shouldn't be a big deal. By using the full source you can browse through Orchard's internals to get to know it better. If you need examples you'll have all the built-in modules at hand. Running Orchard locally and deploying it is the same as with any other web application. You can simply run Orchard by hitting (Ctrl +) F5 and it will spin up through IIS Express. If you want to get away from the simple SQL CE database option and want to use a proper database you'll have to install and configure SQL Server too. You can even use the full power of IIS and run Orchard as you would on a naked Windows Server. Getting Orchard running with IIS and SQL Server is something not trivial though. If you're working in a team or you just want to store your code in source control things get a bit even more complicated but there are established practices that you can use. Good luck with getting up and running with Orchard!

Thank you for everybody participating in Dojo Course!

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Dojo Course is over - for now. We'd like to thank everybody for following the course and giving valuable feedback! Here's a quick recap of what this awesome experiment was about.

Open Dojo Course and university Orchard course

Start Date: 9/18/2013 12:00:00 PM End Date: 12/20/2013 12:00:00 PM After the first-ever Orchard university course we aimed for repeating the course while also massively expanding its audience by giving the tutorials in English. Óbuda University was our host this time too. Students enrolled to the course as usual but this wasn't just an ordinary course: using the same tutorials (from videos captured in classes), extensive supportive materials and notes we also ran an online course in parallel, Dojo Course. The course started with introducing Orchard's user interface and built-in features. Following were topics about theme development and module development, covering the most important pieces of knowledge an Orchard developer should know. For the last tutorial we've taken requests from on-site participants and online viewers. Dojo Course was the first free and open Orchard online course, available to anybody. With about 8000 views until the end of the course we got to train more people on Orchard development than it would be ever possible through a non-online course. The resulting playlist of videos is the most comprehensive Orchard tutorial set to day.