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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XperienceCommunity.RelationshipsExtended.Admin" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XperienceCommunity.RelationshipsExtended.Admin" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="XperienceCommunity.RelationshipsExtended.Admin" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add XperienceCommunity.RelationshipsExtended.Admin --version 1.1.0
                    
#r "nuget: XperienceCommunity.RelationshipsExtended.Admin, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package XperienceCommunity.RelationshipsExtended.Admin@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=XperienceCommunity.RelationshipsExtended.Admin&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=XperienceCommunity.RelationshipsExtended.Admin&version=1.1.0
                    
Install as a Cake Tool

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:

  1. Ensures Taxonomy is language agnostic (so you don't end up with taxonomy differences across multiple languages)
  2. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
1.1.0 1,595 12/16/2025
1.0.1 3,134 12/22/2024
1.0.0 391 12/22/2024

Updated to include Helper and Query Extensions applicable and updated to Xperience 31.0.0