Orchard Core 1.6.0, Data Migrations Poc - This week in Orchard (21/04/2023)
We are thrilled to announce that Orchard Core 1.6.0 is now available! Check out this post to know everything about the latest release of Orchard Core! Now let's see the newest features and editions of the current release, check out the announcement about the first online Orchard Harvest, and watch a demo about a Data Migrations PoC!
Orchard Core updates
Document Ticket Store
The Users Authentication Ticket Store stores users' authentication tickets on the server in the memory cache instead of cookies. If distributed cache feature is enabled it will store authentication tickets on the distributed cache. There were no page in the Orchard Core documentation about the User Ticket store, so now you can find some lines about it.
Add support for built-in and custom Elasticsearch analyzers
Orchard Core only has support for standard analyzers, which is good in most cases. But we do not allow for implementing custom analyzers or the use of built-in analyzers. This feature is about adding support for the built-in analyzers and updating the documentation of the Elasticsearch module, where you can see some examples of how to use the built-in stop and standard analyzers and define custom analyzers using the appsettings.json file.
Demos
Data Migrations Poc
This demo shows you a concept about improving the data migrations in Orchard Core. All the data migrations are hosted in a single class, called Migrations
, which is easy for simple migration but hard for big migration. Meaning the readability and maintainability could be improved. If you check the Migrations.cs file in the OrchardCore.Users module, you can see it may be hard to read and follow.
Another issue could be that we are relying on reflection. The naming convention comes from Orchard 1.x, where we are using numbers at the end of each method to specify the current version of the given migration.
Both IDataMigration
and DataMigration
are hosted on OrchardCore.Data.YesSql
assemblies and it could be an improvement to move the IDataMigration
and DataMigration
into the OrchardCore.Data
assembly.
Hisham Bin Ateya did a prototype by splitting the migrations into multiple files. It will be easy to read, and easy to maintain, and there is no reflection anymore. Both IMigration
and Migration
are hosted on OrchardCoreContrib.Data
assemblies and YesSqlMigration
in the OrchardCoreContrib.Data.YesSql
assembly. You can clean up everything by roll-backing the applied migrations.
For this demo, we will clone the following GitHub repository, which contains a set of modules for Orchard Core CMS that is driven by community members who love Orchard Core. This will encourage all the passionate developers to build modules that aren't included in Orchard Core. Such modules may be necessary for the community or essential for any sort of CMS.
If you open up the CreateGoogleMapPart
migration of the GoogleMaps module, you will find a Migration
attribute where you can specify the version and override the Up and Down methods. By default, you put your code into the Up method, so it will be applied when the migration is run, and the Down method is responsible for "reverting" the changes made by this migration in the Up method.
And we are just scratching the surface here. If you would like to know more about the implementation details, don't forget to check out this recording on YouTube!
News from the community
Orchard Core 1.6.0
Orchard Core 1.6.0 is now available! If you open up nuget.org and search for the OrchardCore.Application.Cms.Targets package, you will find the updated version of Orchard Core!
There is a new page in the documentation with the breaking changes. Upgrade your solution to 1.6.0 now! Feel free to drop by the dedicated Gitter chat and ask questions or use GitHub Discussions!
Orchard Harvest Online
As many of you know, we have been working hard over the past months to organize the next Orchard Harvest in Las Vegas after the last Harvest in 2017. Unfortunately, based on the current economic situation and personal feedback, Las Vegas won’t work this year. Not to mention that unfortunately Microsoft Build, announced after we decided on our dates, also falls in line with the original dates we chose. So, a date change was also necessary.
However, we did not want to let go of this opportunity to meet completely. Therefore, we are pleased to inform you that we will be holding our first online Orchard Harvest starting on the 31st of May at 13:00 UTC. You can start your registration for the event right now.
Of course, we are still looking for speakers. You can apply to present by 12 May at the following link: https://forms.office.com/e/pfiExtEUuZ. Jump into the following GitHub discussion for the details!
Orchard Dojo Newsletter
Lombiq's Orchard Dojo Newsletter has 442 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!