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

Mastering Lucene Query Syntax in Orchard Core, How to quickly spin off your Orchard Core site? - This week in Orchard (12/06/2026)

Have you heard that we rebuilt DotNest.com using reusable landing page sections, Tailwind 4 without Node.js, and AI-assisted workflows?

Nick Jackson demos an Electron desktop app that lets you spin up Orchard sites fast! Choose your modules and themes, manage recipes, all without touching an IDE.

Sébastien Ros introduced support for async JS evaluation using Jint's new async method, enabling workflows and other JS-dependent features to run without blocking.

We're excited to open registration for Orchard Harvest 2026! Secure your spot today for the early bird pricing and get ready to level up your skills!

Latest tutorials

Featured tags

AI
IIS
SMS
MCP
API
SEO
All tags >

Troubleshooting IIS AppPool crashes (status 503) after Windows 10 Anniversary Update

Installing the recently released Anniversary Update (version 1607) of Windows 10 seems to destabilize IIS by shutting down Application Pools, thus resulting in a 503 error when trying to run an application, which is caused by some DLLs failing to load when the worker process starts. Fortunately, the lovely folks of the interwebz are coming to the rescue! First, check out the Windows Event Viewer (Win+X, V) to see what you need to fix: Open "Windows Logs", then "Application" and look for "Error" level entries with the source "IIS-W3SVC-WP" (may be different if the name of your IIS instance is not the default one). In the details, you will see a short message, like this: The Module DLL <path-to-DLL> failed to load. The data is the error. Depending on your configuration, there may be different DLLs causing this kind of problem and they will occur one by one, so you will need to keep checking the Event Logs and fix the issues until your application properly starts up. To be sure, before every attempt, stop IIS and close IIS Manager. Here are two specific issues we've experienced so far and how to fix them, but you may bump into completely different ones: "C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference) Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2". "C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference) Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...". Happy updating!

How to install SQL Server 2016 (and SSMS 2016)

As an update to our earlier how-to for setting up a developer environment with IIS and SQL Server 2014 for Orchard, here's a step-by-step guide for setting up SQL Server 2016 and SQL Server Management Studio 2016 on your machine. If you're upgrading from SQL Server 2005, we have good news for you: SQL Server 2016 is faster. Prerequisites Make sure that your msvcr120.dll file is the appropriate version, as described in the official documentation. SQL Server 2016 Go to the Technet Evaluation Center, sign in with a Microsoft ID and download the installer. Installation Select "Custom" as the installation type on the splash screen. New SQL Server stand-alone installation or add features to an existing installation (opens a new window) Product key Specify a free edition: Developer Feature Selection Instance Features -> Database Engine Services -> check (you probably won't need anything else) Instance Configuration Default instance -> select Instance ID: MSSQLSERVER (this will mean that the instance can be accessed with the shortest host name possible: ".", ".\" or "localhost", but also by your machine name; you may have to change this or remove a previous installation if this name is taken) Database Engine Configuration Server Configuration Authentication Mode -> Windows authentication mode Specify SQL Server administrators -> Add Current User Data Directories: change, if necessary SQL Server Management Studio 2016 Go the MSDN download page of the product to get the installer. What else to do Head back to the original article and follow the installation guide from step 9.

Training the Microsoft MCIO team on how to develop Orchard

Start Date: 8/25/2015 2:00:00 AM End Date: 10/13/2015 2:00:00 AM We at Lombiq recently had the chance to train a Microsoft team. This was our experience: Microsoft is not a company that needs introduction - but one that needed Orchard training. More specifically the Microsoft Cloud and Infrastructure Operations (MCIO) team (who supply the infrastructure for all Microsoft divisions, including Windows, Bing or even Azure) reached out to us: before starting a big Orchard project they wanted to have some expert help. After a few days of what was an online intensive training the MCIO team is now familiar with Orchard's built in features and everything a beginner Orchard developer needs to know. The only problem is that we won't see what they are building - because it will be an internal portal, just for Microsoft employee eye

Writing an Orchard Owin middleware

So you heard about how fancy Owin is, with all of its loosely-coupled thingies? Well, it's now in Orchard: as you may have heard on this week's Community Meeting, you can now write Owin Middlewares in the Orchard-y way. Let's see how! We won't discuss how Owin works or what a middleware is, so if you don't know these yet, check out the linked meeting video. Also, make sure to grab the latest source from the 1.x branch of Orchard's repository because only the upcoming 1.9 version will have Owin support. First you'll need to get familiar with the IOwinMiddlewareProvider interface. Middleware providers are injected services that return a collection of OwinMiddlewareRegistration objects. The latter ones contain the actual middlewares, i.e. those delegates that will run when the Owin pipeline is executed. This all is where the magic happens: you need to implement IOwinMiddlewareProvider and inside your implementation create OwinMiddlewareRegistration instances. See the following example: public class OwinMiddleware : IOwinMiddlewareProvider { // Mostly you'll only need the WCA, see below why. private readonly IWorkContextAccessor _wca; // Or use Work<T> injections, also see below for the explanation. private readonly Work<ISiteService> _siteServiceWork; public ILogger Logger { get; set; } public OwinMiddleware( IWorkContextAccessor wca, Work<ISiteService> siteServiceWork) { _wca = wca; _siteServiceWork = siteServiceWork; Logger = NullLogger.Instance; } public IEnumerable<OwinMiddlewareRegistration> GetOwinMiddlewares() { return new[] { // Although we only construct a single OwinMiddlewareRegistration here, you could return multiple ones of course. new OwinMiddlewareRegistration { // The priority value decides the order of OwinMiddlewareRegistrations. I.e. "0" will run before "10", but registrations // without a priority value will run before the ones that have it set. // Note that this priority notation is the same as the one for shape placement (so you can e.g. use ":before"). Priority = "50", // This is the delegate that sets up middlewares. Configure = app => // This delegate is the actual middleware. // Make sure to add using Owin; otherwise you won't get why the following line won't compile. // The context is the Owin context, something similar to HttpContext; the next delegate is the next middleware // in the pipeline. // Note that you could write multiple configuration steps here, not just this one. app.Use(async (context, next) => { // Note that although your IOwinMiddlewareProvider behaves like an ordinay Orchard dependency, the middleware // delegate lives on its own and will run detached from the provider! Because of this you'll need to either // access the Work Context as we do here, or inject your dependencies as Work<TDependency> objects. If you // build multiple middlewares with many dependencies here, doing the following is a better choice. var workContext = _wca.GetContext(); // But this would be an alternative: var siteSettings = _siteServiceWork.Value.GetSiteSettings(); var clock = workContext.Resolve<IClock>(); var requestStart = clock.UtcNow; // We let the next middleware run, but this is not mandatory: if this middleware would return a cached page // for example then we could just leave this out. await next.Invoke(); // Think twice when wrapping this call into a try-catch: here you'd catch all exceptions that would normally // result in a 404 or an 503, so it's maybe better to always let them bubble up. But keep in mind that any // uncaught exception here in your code will result in a YSOD. var requestDuration = clock.UtcNow - requestStart; // No need to use the ugly HttpContext, because we have OwinContext! var url = context.Request.Uri; // OK, but what if we _really_ need something from HttpContext? if (context.Environment.ContainsKey("System.Web.HttpContextBase")) // This is Orchard, so should be true... { var httpContext = context.Environment["System.Web.HttpContextBase"] as System.Web.HttpContextBase; if (httpContext != null) { // Voilá, we have the ugly HttpContext again! Like RouteData: var routeDataValues = httpContext.Request.RequestContext.RouteData.Values; // ...you know what to do. } } Logger.Information("The request to " + url + " on the site " + siteSettings.SiteName + " had taken " + requestDuration + "time."); // You see, we've done something useful! }) } }; } } Oh, and you'll see inline documentation for all the Owin interfaces :-). Also this sample will be part of the Training Demo module. Happy Owin'!

First Orchard CMS Workshop in Mumbai

Orchard CMS Mumbai User Group will be conducting the First Orchard CMS Workshop in Mumbai "Introduction To Orchard CMS and Theme Development" on 2nd Nov 2014. This user group will conduct workshops which will be aimed for developers new to Orchard and everyone interested in using Orchard in their projects. First Orchard CMS Workshop in Mumbai "Introduction To Orchard CMS and Theme Development". Workshop requirements? In order to join this workshop you will need to install the following things on your laptop Microsoft WebMatrix 3 SQL Server 2012 Express Visual Studio 2013 or higher (including free express editions) IIS 7.5/ 8 / 8.1 Any web browser How will you benefit from this workshop? You will get a good working knowledge of Orchard CMS and its admin panel and how to use Orchard CMS as an advance user. After completing this workshop you will be able to download Orchard, Install it locally and remotely on a live web server, use the Orchard admin panel very efficiently, Install new themes and modules from the gallery, create pages, blogs and pretty much everything that a content manager will do to manage his content using Orchard CMS. Theme Development will teach you how to create themes for Orchard CMS and even convert HTML templates into Orchard Themes. You will also learn about Shapes, Shape Tracing , Shape Templates, Placements , Packaging and Sharing. What things you will be learning in this workshop? Getting started with Orchard CMS Learn how to Install Orchard CMS on your local IIIS Learn about all the Orchard CMS Terminologies Learn how to use the Orchard CMS Admin Panel Learn how to host an Orchard CMS website on to a live web server Get Started with Orchard CMS Theme Development How to use Orchard CMS Command-Line Scaffolding How to create themes in Orchard CMS What are Shapes and How to override Shapes in Orchard What are Part Templates (Overriding Part Templates) What are EditorTemplates (Overriding EditorTemplate for Parts) How to override Widgets Placement.info : Placing shapes in a specific zone with a weight/positionPlacement.info : Matching(DisplayType, ContentType, Path) How to create a Nuget package for your Orchard Theme DotNest(dotnest.com) : The Saas Provider for Orchard CMS(like wordpress.com) This workshop is also featured on Orchard Beginner Who is Abhishek Luv? Abhishek Luv is an Orchard Dojo Trainer and a Contributor to the Official Orchard CMS Documentation and has created numerous Orchard CMS tutorials. Interests Asp.net MVC, Orchard CMS. You can see Abhishek's tutorials on Udemy (https://www.udemy.com/u/abhishekluv) and Orchard Beginner (http://orchardbeginner.com). Also visit Abhishek's trainer profile on Orchard Dojo. Register Now

Introducing Orchard Beginner

Are you confused, frustrated or intimidated about how to begin or get started with Orchard? Have no fear Orchard Beginner is here. Orchard Beginner is created with the aim to provide users and developers to have a Beginner's Guide to learn the ins and outs of Orchard. OB will introduce you to the Basics of Orchard i.e. Talking about Basic site management, User management and then step into more important advance features of Orchard like Queries, Projector, Taxonomies, Custom Forms, Workflows and Recipes. After that how to Get Started with Theme Development in Orchard and later on Module Development too. http://orchardbeginner.com/Again Welcome To Orchard Beginner.Happy Orcharding!!

Introducing Abhishek Luv, Orchard Dojo Trainer!

We welcome our new trainer, Abhishek Luv! You surely know Abhishek from the Orchard discussion board or from one of his online Orchard courses like the popular "Orchard CMS Tutorial for Absolute Beginners". From now on Abhishek is officially among the trainers of Orchard Dojo and thus also offering his Orchard training services through the Dojo too.

Orchard CMS Tutorial : Recipes In Orchard CMS

Start Date: 7/1/2014 5:48:00 PM End Date: Orchard simplifies the process of setting up a new website by letting you use website recipes. A recipe is an XML file that contains the startup configuration for an Orchard website. When you start Orchard for the first time, you can select a recipe that best matches the type of site you want to set up. For example, if you want your website to be a blog, you can select the Blog recipe, and much of the configuration work will be done for you. You can create your own recipes and customize the process of setting a website and configuring Orchard features. Recipes can also instruct Orchard to download and install modules and themes from the Orchard Gallery during website setup. This course describes How to use recipes How to create custom recipes Export or Import Recipes and How to create a new website using a Custom Recipe.

Orchard CMS Tutorial : Workflows in Orchard CMS

Start Date: 7/17/2014 5:50:00 PM End Date: The Workflows Module in Orchard provides us tools to create custom workflows for events or activities like Content Created, Content Published, Content Removed, Send Email, Timer and many more. This course shows you how to get started with Workflows in Orchard CMS. And the course consists of 7 Demo tutorial videos on Workflows and how to use workflows to create your own custom workflows for the following things : Custom Form Submission + Notification using Workflows Page Published if created by Admin if not Notify the administrator Closing Comments using Workflows Redirecting user after form submission using Workflows Assigning roles for new registering user using Workflows Comments Moderation Notification using Workflows Comments Removal User Notification using Workflows