Migrate the OpenID module to OpenIddict 7.0, Orchard CMS Dev-Time Orchestration with ASP.NET Aspire - This week in Orchard (01/08/2025)

This week, we would like to show you a tutorial about Orchard CMS Dev-Time Orchestration with ASP.NET Aspire! But first, check out the fix for the native validation when the invalid input is hidden and the updated OpenID module to OpenIddict 7.0! Without further ado, let's get started!

Orchard Core updates

Migrate the OpenID module to OpenIddict 7.0

OpenIddict 7.0 introduces significant changes to its core stack to ensure its trimming and Native AOT compatibility, see the details here. OpenIddict 7.0 packages were published to NuGet.org in early July, and Kévin Chalet already migrated the OpenID module to OpenIddict 7.0!

OpenIddict 7.0 now references .NET Extensions 8.0 on .NET Framework 4.6.2+ and .NET Standard 2.0/2.1; the Entity Framework Core stores now require Entity Framework Core 2.3+; OAuth 2.0 Token Exchange is now supported by the client and server stacks, and this version has introduced many other improvements. If you are interested in the most important changes, check out this post for the details!

Open Iddict 7.0

Fix native validation fails when the invalid input is hidden

When using nested BagParts with a TextField (configured as a URL editor), you might encounter a situation where you're unable to publish your changes if the BagPart cards are collapsed. If you have many items and they are nested, it's tough to find which input is causing the problem. This happens because the native validator for input[type="url"] attempts to focus an element that is not currently visible or focusable. The affected inputs are:

  • [type="url"]
  • [type="email"]
  • [type="number"][min]
  • [type="number"][max]
  • [type="number"][step]
  • [type="text"][pattern]

The solution here was to expand all collapsed cards containing invalid inputs just before native validation is triggered.

If you set up your site using the Agency recipe, it will construct a content type called Landing Page. That Landing Page has several Bag Parts attached, including Team, which lists the team members. The Team Member content item has multiple Text Fields; for example, there is one called Occupation. Let's edit its definition under Design -> Content Definition -> Content Types -> Team Member and hit Edit near the Occupation Text Field, where you can put a tick into the Required checkbox to make this value required. Now, let's get back to the predefined Landing Page content item and remove the text from the Occupation text box for one of the team members. As you can see, after we hit Publish, we will get a validation error saying that "A value is required for Occupation." The cards are expanded, which lets you easily find the validation error.

Fix native validation fails when the invalid input is hidden

News from the community

Orchard CMS Dev-Time Orchestration with ASP.NET Aspire

ASP.NET Aspire is a real game-changer in the .NET ecosystem, and Dev-time orchestration is one of Aspire's most helpful features. But what is Dev-time orchestration? Imagine that you develop a system where these components interact:

  • A frontend calling a backend API to get and display data.
  • The frontend fetches the data from a database and returns it to the client.
  • The developer has to handle the communication between the components.
  • The developer has to handle the access between the API and the database using connection strings.

In the past, we would need to install the database, execute some scripts on it, and open two instances of Visual Studio and run them together: one for the APIs and the other for the frontend. We were doing our orchestration.

Dev-time orchestration using Aspire changes the way this works. All the components (app, frontend, and database) are called resources. Aspire handles starting the resources, making the resources communicate with each other, and allowing them to access each other.

This tutorial presents how to use Aspire to dev-orchestrate a web app based on Orchard CMS. Check out this tutorial to see how you can add the Azure storage as a resource, add the app to the orchestration, pass the Orchard administrator password to the app, and much more using Aspire!

Orchard CMS Dev-Time Orchestration with ASP.NET Aspire

Help us improve the Orchard Core project start experience

Orchard Core is a powerful tool for building apps, but the user experience is not always smooth. We aim to identify new ways to improve it, from simplifying the initial steps to helping experienced users work more efficiently. Whether through AI or other solutions, we first want to understand how you approach site setup today and where things feel repetitive, unclear, or time-consuming.

You can help us by taking a moment to complete this survey, which should only take approximately 5-10 minutes of your time. Please help us to improve the Orchard Core project start experience!

Orchard Core Project Start Experience survey

Orchard Dojo Newsletter

Lombiq's Orchard Dojo Newsletter has 450 subscribers! We have started this newsletter to inform the community around Orchard of the latest news about the platform. By subscribing to this newsletter, you will get an e-mail whenever a new post is published to Orchard Dojo, including This week in Orchard of course.

Do you know of other Orchard enthusiasts who would like to read our weekly articles? Tell them to subscribe here!

If you are interested in more news about Orchard and the details of the topics above, don't forget to check out the recording of this Orchard meeting!