This week's topics are making Resources Tag Helper extensible and keeping only important virtual methods in drivers. And after the nomination of exemplary community members to the Jean-Thierry Kéchichian Community Award, it's time to cast your votes! There are only two weeks left until the Orchard Harvest conference! Let's see the news for this week! Orchard Core updates Make Resources Tag Helper extensible Right now, you can define any custom resource type in the resource manager. For example, in Lombiq.VueJs, we use it to define Vue SFC resources and JS module resources. But there is a huge pain point: the <resources /> Tag Helper doesn't support any other resource type besides the built-in ones, so if you add a custom resource type you can require it, but it won't be rendered. This leads to a lot of added complexity and additional failure points because you have to display the resources in weird ways, such as using widgets, custom themes, or injecting the resources to render them in the Content zone (since other zones are not guaranteed to exist depending on the theme). Now both the <resources /> tag helper and the {% resources type: "..." %} Liquid tag can be extended with IResourcesTagHelperProcessor to run custom rendering logic. To make this possible, the OrchardCore.ResourceManagement.TagHelpers.ResourceType and OrchardCore.Resources.Liquid.ResourcesTag.ResourceType enums have been replaced with a common OrchardCore.ResourceManagement.ResourceTagType. It was renamed to avoid confusion with ResourceDefinition.Type. This change is breaking in code, but it does not affect the uses of the Razor Tag Helper or the Liquid tag in templates. Keep only important virtual methods in drivers Starting from Orchard Core 2.0, we mark all unnecessary methods in the base DisplayDriver obsolete. Then address all the warnings/errors by implementing the necessary methods. Also, the signatures of the UpdateAsync() method within the SectionDisplayDriver base class have undergone modifications. Previously, these signatures accepted the BuildEditorContext parameter. However, with this update, all signatures now require the UpdateEditorContext instead. This alteration necessitates that every driver inheriting from this class adjusts their contexts accordingly. These adjustments ensure compatibility and adherence to the latest conventions within the DisplayDriver class. Similar refactoring was done to the SectionDisplayDriver class. The following methods have been marked as obsolete: Display(TSection section, BuildDisplayContext context) Display(TSection section) Edit(TSection section, BuildEditorContext context) UpdateAsync(TSection section, UpdateEditorContext context) UpdateAsync(TSection section, IUpdateModel updater, string groupId) and removed the following methods: UpdateAsync(TModel model, TSection section, IUpdateModel updater, UpdateEditorContext context) UpdateAsync(TSection section, IUpdateModel updater, UpdateEditorContext context) UpdateAsync(TSection section, IUpdateModel updater, string groupId) UpdateAsync(TSection section, UpdateEditorContext context) EditAsync(TSection section, BuildEditorContext context) DisplayAsync(TSection section, BuildDisplayContext context) You can read more about the changes related to display management in the release notes of the upcoming release. News from the community Jean-Thierry Kéchichian Community Award 2024 - cast your votes At the end of last year, our good friend, Jean-Thierry Kéchichian, a truly extraordinary member of our community, unexpectedly passed away. To honor him, keep his memory alive, and foremost, inspire people to do good work for the community, we launched an award named after him for exceptional community members. Every year, the community votes on who has done the most for Orchard Core. This can entail activities in the form of e.g., code contributions (including documentation), help under issues and discussion, evangelization outreach, community management, or anything else. However, it needs to be public and tangible. After the nominations, it's now time to vote! Cast your vote here! Voting ends at 2:00 AM UTC on 12 September and we'll announce the winner at Harvest! Orchard Harvest 2024 Two weeks left until the Orchard Harvest conference! This year’s program is packed with insightful sessions, engaging panels, and ample opportunities to connect with the Orchard community and to make Orchard Harvest the biggest Orchard Core event of the year. All sessions will be recorded and published on the Orchard YouTube channel after the event, so even if you can't make it live, you can see the sessions. However, being there live will allow you to ask the speakers, meet other community members, and have a lot of fun! All indicated times are local time in Las Vegas. After each session, you'll have a chance to ask questions, and we'll have a short break too. Here is a detailed schedule to help you prepare for the conference. Can't wait until September? Check out recordings from last year's special online Orchard Harvest on this YouTube channel here. Ready to be a part of something extraordinary? Reserve your spot today at Orchard Harvest Conference 2024, and get ready to level up your skills! See you there! Orchard Dojo Newsletter Lombiq's Orchard Dojo Newsletter has 463 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!