MVCCaching.Base.Core 4.5.0

dotnet add package MVCCaching.Base.Core --version 4.5.0                
NuGet\Install-Package MVCCaching.Base.Core -Version 4.5.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="MVCCaching.Base.Core" Version="4.5.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MVCCaching.Base.Core --version 4.5.0                
#r "nuget: MVCCaching.Base.Core, 4.5.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.
// Install MVCCaching.Base.Core as a Cake Addin
#addin nuget:?package=MVCCaching.Base.Core&version=4.5.0

// Install MVCCaching.Base.Core as a Cake Tool
#tool nuget:?package=MVCCaching.Base.Core&version=4.5.0                

MVCCaching Base and Components

This readme is specifically for the Platform Agnostic MVCCaching packages. If you are using this for Xperience by Kentico, or Kentico Xperience 13, please see those specific readmes.

Concept

I believe caching should be a common optimization practice. Caching, at it's core, consists of these core elements:

  1. What to cache (the object)
  2. What is that cached call's unique identifier (it's Name)
  3. How long should something be cached (it's Duration)
  4. What triggers should clear the cache prematurely (it's Dependencies)

Along with that, there may be things that caches often need to know:

  1. Language
  2. If caching should be disabled (IE Preview mode)

Lastly, in terms of usage of the <cache> tag within ASP.Net Core MVC, you also often need:

  1. Cache Dependencies for the <cache> tag
  2. Cache Scope (to determine the dependencies called within the scope that should pass to the cache tag's dependencies)
  3. Cache Store (a way to store dependencies as they are generated)

The Tool

MVCCaching.Base.Core Provides interfaces, extension methods and helpers to accomplish these concepts. These do not, however, actually implement them, as that varies.

MVCCaching.Base.Core.Components also provides Tag Helpers that extend the <cache> tag, and add the <cache-dependency-keys> child tag to allow passing of those dependencies.

Additionally, although not caching related, Dependency Injection automation is also something often employed and is included.

Extending

These packages have implementations in Kentico Xperience 13 and Xperience by Kentico, however there is nothing preventing implementations to be written for other platforms, or just MVC itself (using memory cache for example).

If you wish to use these base items and write other implementations, feel free to fork and make a pull request!

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on MVCCaching.Base.Core:

Package Downloads
XperienceCommunity.Baseline.Core.Models

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

MVCCaching.Kentico.Core

MVC Caching for Kentico Xperience 13 MVC.Net Core, provides attribute level caching and dependency injecting for IRepository and IService. Also provides ICacheDependenciesScope to track Dependencies and retrieve them and ICacheDependenciesStore to store them (all MVCCaching attributed dependencies automatically added to ICacheDependenciesStore). While these can be used manually with any Kentico Xperience 13 version, it is primarily created for KX 13 Refresh 1 and above (Hotfix 16+)

XperienceCommunity.MVCCaching

Caching interfaces and extensions for Kentico Xperience .net 5.0 MVC Sites

MVCCaching.Base.Core.Components

Tag Helper Components used with MVCCaching.Base.Core. This one is built for .net 8.0

XperienceCommunity.DevTools.MVCCaching

Adjusted Get Default Language to fall back to Content Default Language. Changed ICachingReferenceService to ICacheReferenceService to fit other ICache motif.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.5.0 179 10/4/2024
4.4.0 10,796 10/26/2023
4.3.0 296 10/26/2023
4.2.0 9,319 6/30/2023
4.1.0 312 6/30/2023
4.0.2 851 6/30/2023
4.0.1 389 6/30/2023
4.0.0 5,015 5/22/2023
3.0.2 5,370 11/22/2022
3.0.1 737 10/25/2022
3.0.0-beta 379 10/24/2022
3.0.0-alpha 348 10/24/2022
2.1.1 28,572 3/12/2021
2.0.0 2,667 10/5/2020

Made the ICacheRepository inherit from ICacheKey so the normal .ToCacheNameIdentifier() would work properly.