XperienceCommunity.RelationshipsExtended.Admin
1.1.0
dotnet add package XperienceCommunity.RelationshipsExtended.Admin --version 1.1.0
NuGet\Install-Package XperienceCommunity.RelationshipsExtended.Admin -Version 1.1.0
<PackageReference Include="XperienceCommunity.RelationshipsExtended.Admin" Version="1.1.0" />
<PackageVersion Include="XperienceCommunity.RelationshipsExtended.Admin" Version="1.1.0" />
<PackageReference Include="XperienceCommunity.RelationshipsExtended.Admin" />
paket add XperienceCommunity.RelationshipsExtended.Admin --version 1.1.0
#r "nuget: XperienceCommunity.RelationshipsExtended.Admin, 1.1.0"
#:package XperienceCommunity.RelationshipsExtended.Admin@1.1.0
#addin nuget:?package=XperienceCommunity.RelationshipsExtended.Admin&version=1.1.0
#tool nuget:?package=XperienceCommunity.RelationshipsExtended.Admin&version=1.1.0
RelationshipsExtended
Unlike Kentico Xperience 13 or lower versions, Xperience by Kentico handles relationships MUCH better, including tools to create many to one relationships between Content Items and the ability to make custom fields that can store relationships between Pages and Objects (in a Serialized Json Array).
This package then is much more limited in scope than the others in the past. It contains a "Content Item Category [Tag]" table and interfaces to set this. This allows linking of Tags on the Content Item (language agnostic) instead of in a language-specific field on the content item. This does 2 things:
- Ensures Taxonomy is language agnostic (so you don't end up with taxonomy differences across multiple languages)
- Allows for faster filtering for large number of content items (The default Taxonomy fields on a Content Item store the taxonomy in a JSON array, and to filter it has to parse all the content item's Json arrays and do matches, which is slower than a Where In)
It also has some extension methods to the ContentTypeQueryParameters to leverage these language agnostic categories, as well as other Binding/Relational Binding Condition Generators in the IRelationshipsExtendedHelper. It is important to note if migrating from KX13 or prior, that due to the limitation of the Where Condition on the ContentTypeQueryParameters Only the BindingTagsCondition was implementable.
I have hopes that eventually this will also have logic to 'sync' taxonomy fields that are in the Content Item Fields if you want to keep using the built-in taxonomy field type.
Installation
Install the XperienceCommunity.RelationshipsExtended.Web.Admin Package on your Project. Optionally you can install the Admin only on the Admin project, and the XperienceCommunity.RelationshipsExtended.Core on the MVC or Kentico.Xperience.WebApp dependent project.
Package Installation
Add the package to your application using the .NET CLI
dotnet add package XperienceCommunity.RelationshipsExtended.Web.Admin
Additionally, you can elect to install only the required packages on specific projects if you have separation of concerns:
XperienceCommunity.RelationshipsExtended.Core: Kentico.Xperience.WebApp Dependent (No Admin) XperienceCommunity.RelationshipsExtended.Web.Admin : Kentico.Xperience.Admin (Admin Items)
Quick Start
In your startup, when you call the .AddRelationshipsExtended(options => ...) ...
This will hook up all the interfaces (including IRelationshipsExtendedHelper, and IRelHelper), as well as and run the installation logic on application run (will set up the RelationshipsExtended_ContentItemCategory table and ContentItemCategoryInfo class).
Library Version Matrix
This project is using Xperience Version v31.0.0.
| Xperience Version | Library Version |
|---|---|
| >= 31.0.* | 1.1.0 |
| 30.0.0-30.12.3 | 1.0.1 |
Documentation
Documentation is still TBD, i think the nav I created broke with some update so I need to revisit. Overall though the IRelationshipsExtendedHelper allows you to leverage custom relationships/binding tables in lookups for objects, and there is one BindingTagsCondition for the ContentTypeQueryParameters that will filter the content items by the Tag IDs, Code Names, or Guids you pass.
Contributions, bug fixes and License
Feel free to Fork and submit pull requests to contribute.
You can submit bugs through the issue list and i will get to them as soon as i can, unless you want to fix it yourself and submit a pull request!
This is free to use and modify!
Compatability
This version is for Xperience by Kentico 31.0.0+, but older versions are available for Kentico 10.0.52, 11.0.48+, and Kentico 12 SP site (hotfix 29 or above), and Kentico 13.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- kentico.xperience.admin (>= 31.0.0)
- XperienceCommunity.RelationshipsExtended.Core (>= 1.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on XperienceCommunity.RelationshipsExtended.Admin:
| Package | Downloads |
|---|---|
|
XperienceCommunity.Baseline.Core.Admin.Xperience
The Baseline a set of Core Systems, Tools, and Structure to ensure a superior Kentico Website that's easy to migrate, for Kentico Xperience 13 and eventually Xperience by Kentico |
GitHub repositories
This package is not used by any popular GitHub repositories.
Updated to include Helper and Query Extensions applicable and updated to Xperience 31.0.0