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

Copilot Integration, Last call: Speaker application for Orchard Harvest 2026 - This week in Orchard (01/05/2026)

This week, Mike Alhayek shows how to use Copilot directly inside Orchard Core!

But before that, check out some code where you can see that, starting now, Orchard supports static data migration methods, and suppressions are no longer required for migration steps that don't use instance state.

Welcome the first contribution from Jack Liu, who made the pagination of the List Part configurable to decide whether to show a full pager with page numbers or just the arrows to navigate to the previous and next pages.

Do you know that since 2013, we've been working with Óbuda University in a hands-on way to teach web development? If you are interested in our Orchard Core courses at the university, check out our post on our site!

As we mentioned, we started publishing last year's Harvest recordings to YouTube. Check them out for some inspiration, and don't forget to apply to be a speaker for this year's Harvest by the 5th of May, midnight, anywhere on Earth!

Ready to explore? Let's dive in!

Latest tutorials

Featured tags

AI
IIS
MCP
API
SMS
SEO
All tags >

AI Knowledge Base Indexing, Arguments Source Generation - This week in Orchard (10/04/2026)

This week in Orchard, we've got some exciting updates you won't want to miss!

Mike Alhayek showcases Knowledge Base Indexing, which automatically chunks, embeds, and indexes source documents into a unified AI Knowledge Base index for efficient vector search.

Hisham Bin Ateya introduces the new OrchardCore.ContentFields.Core module. You can now use content fields without pulling in the entire ContentFields module.

Thanks to Georg von Kries, Orchard Core now leverages source generators to boost performance by generating code at compile time and reducing reflection on critical paths.

And don't miss our RESCON case study, highlighting how we supported the builders of Ontario.

Ready to explore? Let's dive in!

Admin Menus Localization support, MCP Prompts and MCP Resources support - This week in Orchard (03/04/2026)

We have two demos prepared for this week! The first demo is by Hisham Bin Ateya on adding localization support for Admin Menus, and the second is MCP Prompts and MCP Resources support by Mike Alhayek! Both are worth watching!

Before the demos, let's check out the new content manager ValidateAsync behavior, which means that now ValidateAsync() only performs validation and returns the result, and it no longer cancels the session on failure.

And thanks to Mike Alhayek, there is a new PlacementLocationBuilder fluent API as a type-safe alternative to manually constructing placement location strings in display drivers.

Enough talking, let's see these in detail!

CrestApps Agent Skills, Orchard Harvest 2026 survey results - This week in Orchard (13/03/2026)

This week, you can see a demo of the CrestApps.AgentSkills ecosystem by Mike Alhayek, which provides a clean, layered architecture for defining, organizing, and exposing AI skills in .NET, with first-class support for the Model Context Protocol (MCP) and Orchard Core.

But before that, let us quickly mention how Georg von Kries refactored Orchard Core's code to optimize storage for display type locations, or how he obsoleted the synchronous CustomSettingsService.GetSettingsType method to improve performance by avoiding blocking calls, and to prepare the codebase for the future removal of the synchronous API.

Thank you for filling out the Orchard Harvest 2026 survey! Check out our post for the results and the future plans regarding Harvest!

Test drive Orchard Core with one-click setup of a walkthroughs site, Reduce allocations for ShapeDescriptors - This week in Orchard (07/11/2025)

You can still cast your vote for the Jean-Thierry Kéchichian Community Award! This week's topics include improving FlatPositionComparer performance and reducing allocations for ShapeDescriptors! See you next week at Orchard Harvest!

Simplify using shape morphing in Razor pages, Jean-Thierry Kéchichian Community Award 2025 - This week in Orchard (31/10/2025)

Cast your vote for the Jean-Thierry Kéchichian Community Award! This week's topics include simplifying using StringValues in Liquid templates and shape morphing in Razor pages! Oh, and do you know about the Orchard Harvest's sponsorship opportunity?

New User Display Name shape, Jean-Thierry Kéchichian Community Award 2025 - This week in Orchard (24/10/2025)

Don't miss your chance to shape the conversation at the Orchard Harvest Conference 2025! It's also time to nominate exemplary community members for the Jean-Thierry Kéchichian Community Award. This week's topics include introducing a new User Display Name shape and a new page in the documentation about the Archive Later feature.

How we reduced our app's server-side latency in Azure by 98% while lowering cost by 28%

Sounds like clickbait, right? Fair enough, here's the TL;DR: We moved our Azure Web App from the Windows S1 plan to the new Linux P0v4 plan. Read on for the details!How we used to run our Orchard Core apps in AzureThose Orchard Core web apps of ours that aren't too resource-hungry (like the app running Orchard Dojo) we've been running on the Windows S1 plan of App Services. This now legacy plan provides 1 vCPU, 1,75 GB of RAM, and HDD local storage for a cost of USD 73/month. Not a lot of processing power, but it was enough if your requirements weren't high either. And it, as you may have guessed it, runs on a Windows server.We've done measurements before, and the Linux pair of this App Service plan performed worse. The newer Premium tiers, with newer hardware and SSD storage performed better, but were too expensive for our use-cases and the added performance wasn't necessary. However, two things happened since then: The S1 tier of App Services became deprecated, and a new, v4 Premium tier was rolled out. What's more, the lowest plan of Premium v4, P0v4, is actually cheaper at USD 53,3/month! This is a 28% cost reduction right off the bat, and it promised better performance, too, so we had to try it out. And this was a great success!Windows S1 App Services — the baselineThe test subject was our Lombiq Tenants Core app. This runs most of our own websites, including Orchard Dojo, dotnest.com (but not the sites created on DotNest), and our company website. This is how its performance looked under the Windows S1 plan: Not great, but not terr... No, at face value, it's actually quite terrible, with the 99th percentile being at 18 seconds for generating a server-side response. However, digging into the details revealed that the vast majority of requests that users cared about (e.g. excluding error pages that spambots hit) performed on an acceptable level, within 1-200 ms. Now, this is indeed not great, but not terrible either. Still, the average response time for all requests, even if this includes ones that no real person was seeing and one-off outliers, was 3,7 s. Can we fix this?The charts in this post are from Azure Application Insights, BTW, Azure's app monitoring service. We use it enhanced by our open-source Lombiq Hosting - Azure Application Insights for Orchard Core module, check it out!Linux wasn't always betterAn ASP.NET Core web app, especially in its source form but even when compiled to binaries, consists of a lot of small files, and it constantly works with a lot of small files too (like stylesheets, images). You'd expect that this is a clear case where Linux (with its usually used ext4 file system) has an advantage over Windows (with NTFS). Linux also generally has a lower resource footprint in itself, leaving more for the web app. So, it should just be faster, right? Nope!At least, it wasn't faster at the time when we compared the Windows and Linux S1 tiers. The average server-side latency was about 68% worse under Linux, although for a lower price. The tiny savings weren't worth the worse UX.But then the P0v4 App Service plan came.Migrating to Linux P0v4 App Services and reducing latency by 98%The new P0v4 App Service plan, which came out of preview and entered general availability in September 2025, offers still 1 vCPU but 4 GB RAM, and SSD storage. It also contains the latest hardware all around. So, we checked out how it performs in real life.Moving from a Windows to Linux App Service Plan is a manual process: You have to create a new App Service, configure every service connection and automation to use it instead of the old one, and deploy your app to it anew. It's a chore, but you have to do it only once. And this is your reward: As you can see, 50th percentile was reduced to only 39 ms from 226, and the 99th percentile from 17,8 s to 738 ms. The average response time on the Windows S1 App Service was 3,7 s, while on the Linux P0v4 one 77,5 ms. Let me write it out in a more obvious way: 3700 ms vs 77,5. That's a 98% reduction in latency! Which is absolutely awesome. There must be multiple generations between the CPUs and RAM of the S1 and P0v4 tiers, and I guess having an SSD and newer everything else helps too. More RAM surely does as well, although that was always enough before too.ConclusionMy recommendation would be to keep an eye on the offering that Azure, or your hosting provider, has, because the cost of compute is constantly coming down while performance is going up. With clever and not always ethical tricks, providers try to keep you paying ever increasingly more. However, the reality of hardware advances should eventually be reflected in your monthly bill and your app's performance metrics — you might need to work for it, though.Do you also want better performance for your Orchard Core or any ASP.NET Core app? Contact us and we can take a look!

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!