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

Centralize the Indexing process, Remove Media files for a removed tenant when using Azure Blob Storage - This week in Orchard (20/06/2025)

This time, you can see a demo about centralizing the Indexing process and having a unified UI for managing Indexes and the Search Settings! But first, let's look at our other topics, like removing Media files for a removed tenant when using Azure Blob Storage, and adding RouteEndpoint cache. Don't forget that you can still fill out our Orchard Core Admin UI experience renewal survey to help shape the future of Orchard Core!

Latest tutorials

Featured tags

IIS
API
SMS
SEO
MCP
All tags >

This week in Orchard - 8/9/2018

In the latest Orchard Podcast we have a demo about the improvements of the Deployment module and have a nice demo about the GraphQL feature of Orchard Core! On Orchard Core Deployment Last time we mentioned that you can run a recipe on a separate Orchard instance on another server. So, you can link two servers and the client can send a POST request to the remote machine. Then you can upload content to the different machine, like production from the staging. Now we have a refact about how the deployment steps were executed. The idea is that: when we create a deployment plan and execute it we generate a ZIP file, that could contain recipes, medias and anything else that you want to include in the ZIP file. This is how the content exporting works. After that we can send this package to any target. These targets are extensible, we could export it to a file for a browser to download it or to an endpoint, therefore we could send that package to another Orchard instance and we can define even more options, like we can send it to an FTP or to a Git repository. So, in this case you can easily create for example backups. Another instance can read these Git and FTP endpoints to download that and to make the intermediate server to get the deployments, so there are many ways to use that. Now the logic that imports the file are extracted, any module can do something when the package is imported. GraphQL By enabling the GraphQL module of Orchard Core, you have the ability to run GraphQL queries using the new GraphQL explorer from the dashboard under the Configuration menu. This feature isn't release ready yet, because for instance it cannot lists fields or Markdown yet, so if you want to try out the GraphQL, switch to the jsonapi branch. In the explorer everything based on metadata schema, that means you can introspect what you can query. Just hit CTRL+SPACE and you have access to everything you can query. The context menu shows all the available content types for you. Demos Deployment Let's see a short demo about the deployment! For this, we will run two Orchard Core instances on localhost. Let's image a scenario where we send packages from the staging server to the production environment using the deployment module. For this, you have to create a remote client on the production instance under the Content -> Import/Export -> Remote Clients menu. The remote client is what is able to execute a deployment plan by using a given URL, that could be: http://localhost:2919/Deployment/ImportSo, create a remote client with name "Production" and add an API key. Now you have to define a remote instance in the staging environment under the Remote Instances option. Remote instance is the instance where you want to upload the plan. You have to add the URL here that you can find on the other instance's Remote Clients page. You also have to use the same Client Name and Api Key here that you have defined earlier. After that you can create a Deployment Plan. Deployment plans have deployment steps where you can define the elements that you would like to export. For instance, by selecting the Content step you can export all the content items for the specified content types. For the Demo, I have selected to export every blog post. You have the ability to add other steps to your plan as well. Now if you click on Execute, you will see the available targets, where you can deploy your plan. If you select the Production (which is the name of the previously created remote instance), Orchard will deploy your selection to the Production instance. But if you choose the File Download target, you can also download a ZIP file, that contains a Recipe.json. And here comes the Package Import option under the Import/Export menu. GraphQL Let's see a simple demonstration about the capabilities of the GraphQL explorer! The following query will list you the blogposts with its created UTC, Title Part, owner, the path value of the Autoroute Part, etc. The contentItem() is a custom filter which let's you define a content item by it's ID and you will get the content item. You can also have queries here. For instance, recentBlogPosts is a query that was done in Lucene. On Orchard Harvest The latest conference was held in New York, February 2017. In the podcast, the community have a discussion about the next possible Orchard Harvest. There will be propably no Harvest this year, because the community needs to be more advanced with Orchard Core and then they can think about Harvest. Organizing a conference with a released and more powerful Orchard Core could be more interesting for people to take part in the event. Don't forget to watch the whole recording of this week's Orchard meeting!

This week in Orchard - 7/26/2018

Orchard Podcast is back with 3 demos about the new features of Orchard Core! On Orchard 1.x At this meeting, the community discussed the two new fixes that goes the dev branch of Orchard 1.x, that we have mentioned last week, thanks to Chaleomkiat Munkong. Firstly, he fixed an error in ContainerSettings while editor validating, that comes when attaching a ContainerPart to a content type that has too many parts inside and some of these parts has settings with input validation. When saving with invalid value, you will get an exception. You can see that fix here. This issue also comes up while validating the values of Date Time Fields, so now we also have a fix for that. On Orchard Core Demos This week we had 3 demos about the new features of Orchard Core. Notice that these features are under development, so you will not have these changes in the dev branch of Orchard Core. Having a UI when running setup recipes Now you have the ability to run setup recipes using the Dashboard. You can head to the Configuration/Recipes menu, where Orchard lists you the available recipes. When you click run, the system will execute the commands in the selected recipes. After the demo, the community have a discussion about the further improvements of this feature. That could be a very useful feature, if the admin would have the ability to pass parameters from the dashboard to the recipes, like in the ARM templates. That could be also a good improvement to have recipes like migrations. So, the users could write a migration in recipe files. YouTube Video field Let's say that you attached the YouTube Video field to the Page content type. When you edit the content definition of the Page, you have the ability to set the width and the height of the embedded YouTube video. And when you create a new Page, you can enter the embedded URL of that YouTube video. The next improvement could be to let the users insert the original YouTube video URL (just copy it from the address bar of the browser), because now they need to have the embedded URL pasted here. Default culture When you enable the Localization module, now you have the possibility to set the default culture of the current tenant using the General page of Settings. You can also add or remove different cultures to the tenant, like in the page below. If you are interested in every new commit of the dev branch, head to the GitHub repository of Orchard Core! You can also watch the whole recording of this week's Orchard meeting!

This week in Orchard - 7/19/2018

We have no Orchard meeting this week, but the development of Orchard continues. On Orchard 1.x We have two fixes in Orchard 1.x thanks to Chaleomkiat Munkong. Firstly, he fixed an error in ContainerSettings while editor validating, that comes when attaching a ContainerPart to a content type that has too many parts inside and some of these parts has settings with input validation. When saving with invalid value, you will get an exception. You can see that fix here. This issue also comes up while validating the values of Date Time Fields, so now we also have a fix for that. On Orchard Core Orchard Core has much more fixes and improvements since the latest post, so let’s check some of those. Matias fixed the content ownership on agency.recipe.json. If you head to the commit, you can realize that the values of the owner and author are no longer hardcoded null or admin, now that comes from the AdminUsername parameter. Antoine fixed an issue, where he set’s the value of the Font Awesome to version 4 on TheBlogTheme, because in the case of version 5, the brand icons need a fab prefix. Orchard Core has more detailed documentation than Orchard 1.x, and of course spelling and grammar issues could occur. In this commit Ryan fixed a huge amount of spelling and grammar issues of the documentation. If you are interested in every new commit of the dev branch, head to the GitHub repository of Orchard Core! On Lombiq Orchard Dojo Newsletter Maybe you haven’t heard about it yet: Lombiq announced the Orchard Dojo Newsletter. If you subscribe to this newsletter you will get an e-mail every time when a new post published to Orchard Dojo, including ‘This week in Orchard’ of course. So, if you want to keep up to date with Orchard news, subscribe to Lombiq’s Orchard Dojo Newsletter!

This week in Orchard - 7/12/2018

We have no Orchard meeting this week, because it 'conflicts with the World Cup and they didn’t want to cancel'. :) So, let's see the most important news of this week. On Orchard Core Let’s see some numbers of the Beta 2 release of Orchard Core. If you visit the NuGet Gallery, you will find that more than 250 user downloads the OrchardCore.Mvc.Core Nuget, and there are numerous downloads for the previous releases as well. If you type OrchardCore in to the search box of the NuGet Gallery you can find that there are 137 packages mainly from Sébastien Ros of course, but there are other packages as well, for instance the Disqus.OrchardCore module, that allows you to add comments on a content type. There aren’t any new commits in the dev branch of Orchard Core, but the contributors pushing the features and fixes in their branches industriously. For instance there are several commits in the culture-settings branch to implement a feature that will allow to set the allowed cultures and the default one in the admin. In GitHub you can find the issues that marked with the beta3 tag. These are the planned features and fixes that would be included in the Beta 3 release of Orchard Core that has an estimated due date in 3rd of September. There are about 100 open issues left, so carry on and pick some to work on! If you have any questions or you are just interested in the discussion around Orchard Core, feel free to drop on Orchard Cores dedicated Gitter. On Lombiq Orchard Dojo Newsletter Maybe you haven’t heard about it yet: last week Lombiq announced the Orchard Dojo Newsletter. If you subscribe to this newsletter you will get an e-mail every time when a new post published to Orchard Dojo, including ‘This week in Orchard’ of course. So, if you want to keep up to date with Orchard news, subscribe to Lombiq’s Orchard Dojo Newsletter!

This week in Orchard - 7/5/2018

We have no Orchard podcast this week, but of course the development of Orchard continues. Orchard 1.x also gets a minor update and we have new tutorials for Orchard Core. On Orchard 1.x That can be useful if you have more indexes and you want to show the user which of them is shown. So, from now the index name is added to the SearchViewModel. On Orchard Core Last year Chris Payne from IDeliverable wrote a nice post about how to get started with Orchard Core as a NuGet package. He updated that post in May 2018 and again in June 2018 to reflect changes in the process since the original post was created. Not so fresh news, but maybe you haven't heard about it yet: Arra Derderian, the founder of Cloud Construct wrote a blog post series about Orchard Core. In the first post, he gives a nice overview about the project and how to install your first Orchard Core site. The part 2 of this series is about how to build a custom theme for your application from ground. Lastly, he wrote about how to add logging to Orchard Core by downloading the OrchardCore.Logging.NLog NuGet using the NuGet Package Manager. Forms (OrchardCore.Forms) Two weeks ago we already mentioned the OrchardCore.Forms module by Sipke. Now that module has an updated documentation with several tutorials, for instance you can read about hot to create a form and process form submissions. With a detailed walkthrough, Sipke shows how to implement a Contact Form with NoCaptcha and he creates a workflow for that to validate the input fields of that form. On Lombiq Orchard Dojo Newsletter Lombiq proudly presents the Orchard Dojo Newsletter! You may notice that we updated the homepage of this website. From now, you can subscribe to this newsletter by clicking on the Updates menu or by clicking on Get updates at the right. By subscribing to this newsletter, you will get an e-mail every time when a new post published to Orchard Dojo, including 'This week in Orchard' of course. So, if you want to keep up to date with Orchard news, subscribe to Lombiq's Orchard Dojo Newletter!

This week in Orchard - 6/28/2018

Orchard Core Beta 2 is out now! Orchard Core Framework and Orchard Core CMS Beta 2 are now public on NuGet. Read the release notes and the documentation for more details. On Orchard 1.x Orchard 1.x has only one small change regarding the WebRequestActivity.cs where the handling of HTTP Delete method was missing. On Orchard Core Orchard Core Beta 2 The Beta 2 release of Orchard Core comes with several changes. To list the changes from the release notes: Update to ASP.NET Core 2.1 Precompiled Razor Views Razor Pages Updated to Bootstrap 4.1 Admin responsive menu Assets user interface improvements Fragment caching Content and Query tag helpers Code based manifest files Updated OpenId Social login support Email module Password reset Email confirmation Site and User timezones Date Time (with timezone), Date and Time fields Workflows module Forms module Azure Blob Storage Assets Data Protection dotnet new templates There were 60 contributors on Orchard Core, and it's just the second beta release. Check out the trend in the project's GitHub page! Now, by using Read the Docs, Orchard Core has a quite detailed documentation about how to start working with the framework, descriptions about the CMS and Core modules and so on. The community also provides a solution with several Orchard Core samples in GitHub. This sample web application is demonstrating how to build a modular and multi-tenant ASP.NET Core application. But if you need a step by step tutorial about building a multi-tenant ASP.NET Core application read Sipke Schoorstra's article on Building multi-tenant ASP.NET Core Applications with the Orchard Core Framework. If you have a profile on Facebook, follow the newly created Orchard Core page where you can read about the most important news around Orchard Core and don't forget to join to the Orchard Core User Group. Demos Creating a new website using the code generation templates In the next short tutorial, we will create a new Orchard Core website using only the code generation templates. First you have to make sure that you have the latest version for both Runtime and SDK of .NET Core. The current version of the SDK is v2.1.301 and the Runtime has a version of v2.1.1. You can download the installers from here. Fire up the Command Prompt with administrator privileges. The following command will install the most stable templates for creating Orchard Core Cms web applications. dotnet new -i OrchardCore.Cms.Templates::1.0.0-beta2 You can also use the latest dev branch of Orchard Core if you specify the NuGet source to use during install, but for now let's just work with the most stable version. dotnet new -i OrchardCore.Cms.Templates::1.0.0-beta2 --nuget-source https://www.myget.org/F/orchardcore-preview/api/v3/index.json Navigate to the folder where you want to install your application. The dotnet new occms command will install a new Orchard Core Cms Web App to the current directory. If you type dotnet run, the compiler will compile your application and for default it will listening on http://localhost:5000. Open a browser and visit the newly created site. If you are interested in every new changes that added to the Beta 2 version of Orchard Core to this week, don't forget to check out the recording of the weekly Orchard podcast. Now go ahead and set up your Orchard Core application!

This week in Orchard - 6/20/2018

The Orchard community is so close to release the Beta 2 version of Orchard Core. If you check out the beta2 milestone tag in the project’s GitHub page, you can see the few issues that are left for the upcoming release. On Orchard 1.x But this week is not just about fixing the issues of Orchard Core and implementing its new features. Smaller bug fixes were also added to Orchard 1.x: E.g. if you wanted to hide and show text per radio button, it works by clicking on the radio button, but at Page Load everything was shown. Or new css rule-sets added for superscripts and subscripts of the Theme Machine’s Site.css, and now these tags don't look like normal text. On Orchard Core Workflows (OrchardCore.Workflows) As mentioned, there were a lot of merged changesets to the developer branch of Orchard Core. If you are interested about every fix and feature, check out the recording of the latest Orchard community meeting from 3:15. Forms (OrchardCore.Forms) The OrchardCore.Workflows module is available, and you can enable it from the dashboard. The Workflows module provides a way for users to visually implement business rules using flowchart diagrams. And from now every activity can start a workflow, not just Event activities, that typically listen for an event to happen before execution continues. There are also two sub-features of the Workflows module: HTTP Workflows Activities and Timer Workflow Activities. By enabling HTTP Workflows Activities, you have the option to add new task and event type activities to your workflows. For example you can add an Http Request Event activity that you can set as a starting point of your workflow. By sending an HTTP request to a generated URL (like https://localhost:44300//Workflows/Invoke?token=CfDJ8MBBg4_qSN5) you can fire different events. In the attached screenshot, after invoking this endpoint with a GET request the site will redirect the user to the homepage using the HTTP Redirect Task (that also comes from HTTP Workflows Activities) and show a notification to the user. For more information about the Workflows module, check out the author's, Sipke Schoorstra's post about the new features of this module or if you are interested in a tutorial on creating a new content approval workflow from the ground up, please follow the steps of this demo: http://www.ideliverable.com/blog/orchard-core-workflows-walkthrough-content-approval. You can find a Readme.md file in the module's project, where you can read about the available activities. Forms (OrchardCore.Forms) By enabling the OrchardCore.Flows module, you have the ability to attach Flow content parts to your content types. The OrchardCore.Forms module relies on this module, that means now you can add several different type of Widgets to your custom type. Therefore you can simply build a form where users can enter a text and submits its content. The editor looks like the following: You can see the settings of the Form and the added widgets, like Input, Button and Validation. To be able to use Captcha, don’t forget to set up the Site Key and the Site Secret under /Admin/Settings/nocaptcha. Demos In this week we don't have any demos, but because this is the first post of the 'This week in Orchard’ series, let’s check out some demos from the previous meeting. New editor type for the Boolean field When you add a new Boolean field to your content type you have the ability to choose what type of editor you want to use. If you chose the 'switch' option, you'll have a different styling for the Boolean field when you specify the value of that field while creating a new content item of that type. In this screenshot below you can see two editors with switch and standard types. Setting database presets If you enable the Tenants module, you have the ability to create multiple tenants. When you create a new tenant, you have the option to set the database presets under /Configuration/Tenants. Let’s say you would like to use SQLite for your database. Then if you navigate to the setup screen of the newly created tenant, you don’t have the ability to set or change any setting regarding the database presets. If you choose SQL Server for the database, you also have to specify the connection string from the main tenant. You can't configure the connection properties from the subtenants. If you are interested in every new issue and feature that was added to Orchard Core, don't forget to check out the whole recording of the latest Orchard community meeting!

Dojo Course 2 has been released!

The first Dojo Course was recorded and released in 2013 (not long after Lombiq Technologies was founded) and now we are happy to announce the arrival of Dojo Course 2! The course material has the same foundation (the Orchard Training Demo Module, which has also been upgraded in the past years), but it's updated for the (then) latest Orchard version (1.10.1) and the production quality is also improved. Just like the first generation, these videos were also recorded as part of a university course, but this time host was the University of Szeged, Faculty of Science and Informatics. Thanks for having us! The first hour of videos is available now on YouTube in the Dojo Course 2 playlist - subscribe to our YouTube channel to get notified of the upcoming videos (we will release a few every 2-3 days)! Update (2017. 12. 27.): All videos are now available.

Orchard Harvest conference, day 2

Just as on the first day we're reporting in live from the 2017 Orchard Harvest conference! This blogpost will be updated as we go, so make sure to check back! Bertrand is doing the same thing again, so make sure to check out his blog for updates too. Antoine again as well, so also check out his blog. Theming in Orchard Core CMS by Steve Taylor Steve is from Avastec and works extensively with client-side technologies. He'll live code a new Orchard Core theme based on the Masonic Wordpress theme. A sneak peek into the new Orchard theming, also the casual use of Razor Tag Helpers for including resources, displaying a menu and a zone. The theme makes use of a Gulp pipeline for asset building. A sneak peek into the database storage format of Orchard Core and creating theme settings. Highway to the pager zone. (Sorry. Hate Salute Benedek for the joke.) Topic of the day: Statue of Liberty. We should have a Statue of Orchard. It could be a large monolith. (That, when you look closer, is built of beautifully crafted small, loosely coupled bricks.) Setting up indexing and adding a search box. Quite similar to Orchard 1.x. Taking a look at some of the familiar Orchard concepts from the admin to the extent needed for a theming demo: managing content types, adding menu items, widgets... If you use a lot of stuff the cool kids do like Angular and Knockout there's something for you. Present and future of Localization in Orchard by Benedek Farkas Benedek is from Lombiq, leading the development of Orchard client-projects and contributing bugfixes. He also asked us to take pictures. Lombiq does a lot of things with Orchard, so we'll refrain from listing those 96 things here, you can see for yourself. Benedek does a lot of things with Orchard too, including catering for the translation packages. How is "orchard" in various languages? Turns out probably we're best off with the English one. Word of the day: eltöredezettségmentesítőtlenítetthetetlenségtelenítőtlenkedhetnétek. You should only drink as long as you can pronounce this. When in doubt, use T-strings: Wrapping your user-facing labels into T() is the bare minimum. But it's easy to defeat the purpose, so here are some tips. Extracting T-strings from code with Vandelay Industries. Unfortunately the module is only compatible with Orchard 1.6, so please personally and repeatedly nudge Bertrand to update it. He'll appreciate the moral support. The module supports 1.10.x. Translating UI strings on Crowdin, for built-in and third-party modules. Klingons are really behind on translating Orchard. Head over to Crowdin and contribute some translation, Orchard needs you! Translating content items on the example of the Atlantis Programs & Pedalheads website. Also including some synchronization features to sync some data from the master item to the localized versions. Similar improvements are coming to Orchard itself too. Localizing Taxonomies and content fields, the new way. Design notes on improving localization. Building Client-side Apps and Components for Orchard by Daniel Stolt Daniel from IDeliverable returns. What's a client-side component? Shifting from the server-side to the client side. When do you want to use a client-side component? Mainly if you want a modern UX without page reloads. Various ways to create such components in Orchard, the simplest being a Layout Snippet. Demo of a component displaying stock market information. You wouldn't want that delay page load. Utilizing Orchard's Gulp pipeline for client-side assets. Do we put output files into source control? It depends, but preferably not. Configuring a client-side asset build pipeline with Gulp. If you don't know Browserify, check it out, it's good for you. Angular routing and how to combine it with Orchard's routing. Ways of runtime module loading. It will be awesome with HTTP 2. YesSql, what's that and why do I like it? by Sebastien Ros An ad-hoc, unplanned session by Sebastien about YesSql. It's a document database layer using SQL as the data store, so you get the best of both worlds: A trusted, tested storage with a fancy flexible data model. YesSql is also the data layer of Orchard Core. The plural of "index" is "indices". Learn this and you can look educated among your peers. Bonus: Do the same for "medium" and "matrix". Demo of the various use-cases you'd expect from such a data access layer by looking at the tests. Interesting clever querying and indexing concepts. What's next for .NET Core and C#? by Bertrand Le Roy Bertrand from Microsoft gives some insights into the future as we know it. It's multi-platform, which is a good thing. You'll need VS 2017 if you're using VS, which is bad thing. Project.json is dead and csproj is back, which is kind of a mixed thing. But this csproj is not the same csproj! One project system across all platforms: Now a bearded guy with a Linux laptop, a hipster with a MacBook and a cool engineer with an awesome Windows laptop can walk into a bar and be one .NET development team, not the start of a joke. We've seen some XML templates, but since it's XML no one will ever want to look at it, so whatevs. There's the One SDK running behind all IDEs, which is awesome. The .NET command line got even better, so you can feel like a Hollywood hacker. Even the Orchard command line could be part of the .NET CLI. The solution file format hasn't changed, which is sad. Introducing .NET Standard: one .NET API to use across all platforms, when writing .NET Framework, .NET Core or Xamarin apps. .NET Standard 2.0 will contain all the APIs .NET Framework has (minus the Windows-specific stuff). See for yourself on https://apisof.net/. What's up with C#? Everybody uses C# and everybody loves C#. No further questions. Bertrand just showed an array initialization that could be the prime exhibit in the Museum of Strange Brace Styles. And remember there's a thing called Pico. What's new in C# 7? Here's a recap. Pattern matching can be familiar from functional languages, but it has always long been a part of hardware description languages (and the wider concept in logic circuit design). And with Hastlayer you can create hardware from .NET! The holy trinity of C# language principles: expressiveness, convenience, performance, safety. Well, this was four. Some exotic things possibly coming up with C# 8. Orchard Core CMS by Sebastien Ros The goals of Orchard Core are like new year's resolutions you actually can keep: be worse at everything. Just kidding. Major changes: Built on ASP.NET Core, document-oriented storage (with YesSql, see above). The admin theme uses Bootstrap and there is no bug. The admin menu is now also a standard menu, so it's extensible in a better way. You can also configure the admin theme as easily as the frontend theme, neat! The basic content editing UI is in principle the same as in Orchard 1.x so you won't be confused. Content parts can be attached to a content type in multiple instances. Various things have changed a bit or a lot (even if not too apparent from the UI): Blogs use the Lists feature (so blogs are just a Lists configuration, not a feature written from scratch), widget layer rules can contain C# (and widgets can be dragged between zones from the UI)... New content type: Flows. These are basically widget pages, plus more. Recipes are now in JSON, not XML, and can use dynamic placeholders evaluated during cook time. The thing is fast, even without caching. >2000 request/s on a dev machine while debugging fast. And uses much less memory too. See the roadmap to get an idea of when Orchard Core will be ready. Panel with Daniel Stolt, Sipke Schoorstra and Zoltán Lehóczky Merging localization-related changes: Will mostly be done on dev, because breaking changes are allowed there. What about the new frontend theme? It's on Ryan Drew Bernett's branch (or maybe in a branch in the official repo). The design goals are mostly satisfied, but theme settings are not implemented. Are there any goals to make Orchard competitive against e.g. Wordpress? More themes and out-of-the-box site solutions would make content editors happy. That's true, but Wordpress is just a blog engine, even a lot of Orchard devs use Wordpress for their blogs. Orchard is mostly targeted at businesses.