SplatDev.Umbraco.Plugins.CacheManager
2.1.0
See the version list below for details.
dotnet add package SplatDev.Umbraco.Plugins.CacheManager --version 2.1.0
NuGet\Install-Package SplatDev.Umbraco.Plugins.CacheManager -Version 2.1.0
<PackageReference Include="SplatDev.Umbraco.Plugins.CacheManager" Version="2.1.0" />
<PackageVersion Include="SplatDev.Umbraco.Plugins.CacheManager" Version="2.1.0" />
<PackageReference Include="SplatDev.Umbraco.Plugins.CacheManager" />
paket add SplatDev.Umbraco.Plugins.CacheManager --version 2.1.0
#r "nuget: SplatDev.Umbraco.Plugins.CacheManager, 2.1.0"
#:package SplatDev.Umbraco.Plugins.CacheManager@2.1.0
#addin nuget:?package=SplatDev.Umbraco.Plugins.CacheManager&version=2.1.0
#tool nuget:?package=SplatDev.Umbraco.Plugins.CacheManager&version=2.1.0
CacheManager
Umbraco cache management and warming plugin — multi-layer caching with EF Core second-level cache, response caching, static file compression, and automated cache warming via background service. Consumes the SplatDev.Cache abstraction for ICacheService/ICacheProvider. Supports Umbraco 13 (net8.0) and Umbraco 17 (net10.0).
Compatibility
| Umbraco | .NET | Package Version |
|---|---|---|
| 13.x | 8.0 | 2.0.0 |
| 17.x | 10.0 | 2.0.0 |
Installation
dotnet add package SplatDev.Umbraco.Plugins.CacheManager
Quick Start
Register in Program.cs:
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddCacheManager() // <-- add this
.Build();
Architecture — Cache Layers
The plugin wires multiple cache layers via CacheManagerComposer:
| Layer | Mechanism | Scope |
|---|---|---|
| EF Second-Level Cache | EFCoreSecondLevelCacheInterceptor — MemoryCache provider, 30min absolute expiration |
All EF queries |
| Static File Caching | Umbraco pipeline filter — Cache-Control: public, max-age=1month |
CSS, JS, fonts, images |
| Response Caching | ASP.NET Core UseResponseCaching — 5min max-age via Cache-Control header |
HTML page responses |
| Method Caching | SplatDev.Cache (ICacheService/ICacheProvider) singleton |
App-level method results |
Configuration
// appsettings.json
{
"ConnectionStrings": {
"umbracoDbDSN": "Server=.;Database=Umbraco;..."
},
"CacheManager": {
"EFCacheMinutes": 30,
"StaticFileMaxAgeDays": 30,
"ResponseCacheMinutes": 5
}
}
Backoffice Dashboard
The plugin adds a Cache Manager dashboard under the Settings section:
| Endpoint | Action |
|---|---|
GET CleanCache |
Clear in-memory cache |
GET RefreshCache |
Clear + re-warm entire cache via background service |
GET GetLastTask |
View cache warmer history from DB |
GET GetUrlNotFound |
Top 100 URLs that returned 404 |
GET GetStatistics |
Cache key counts (DB keys, method keys) |
Cache Warming
CacheWarmerBackgroundService runs as a hosted service:
- Scrapes published content URLs from
CacheWarmerEntrytable - Issues HTTP GET requests to warm the response cache
- Logs results to
CacheWarmerEntryRepository - Tracks "not found" URLs in
UrlNotFoundRepository
Trigger manually from the backoffice dashboard or let the background service run on schedule.
Dependencies
SplatDev.Cache— cache abstraction layer (ICacheService,ICacheProvider)EFCoreSecondLevelCacheInterceptor— EF query result cachingMicrosoft.EntityFrameworkCore— DB context for cache tracking tables
License
MIT © SplatDev
| 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 is compatible. 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. |
-
net10.0
- EFCoreSecondLevelCacheInterceptor (>= 5.3.9)
- EFCoreSecondLevelCacheInterceptor.MemoryCache (>= 5.3.9)
- HtmlAgilityPack (>= 1.12.4)
- Microsoft.EntityFrameworkCore (>= 10.0.7)
- Microsoft.EntityFrameworkCore.DynamicLinq (>= 10.6.8)
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.7)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.6)
- SplatDev.Cache (>= 1.0.0)
- SplatDev.Umbraco.Plugins.Mailer (>= 2.1.0)
- Umbraco.Cms.Api.Management (>= 17.3.4)
- Umbraco.Cms.Core (>= 17.3.4)
- Umbraco.Cms.Infrastructure (>= 17.3.4)
- Umbraco.Cms.Web.Common (>= 17.3.4)
- Umbraco.Cms.Web.Website (>= 17.3.4)
-
net8.0
- EFCoreSecondLevelCacheInterceptor (>= 5.3.2)
- EFCoreSecondLevelCacheInterceptor.MemoryCache (>= 5.3.2)
- HtmlAgilityPack (>= 1.12.4)
- Microsoft.EntityFrameworkCore (>= 8.0.20)
- Microsoft.EntityFrameworkCore.DynamicLinq (>= 8.6.8)
- Microsoft.EntityFrameworkCore.SqlServer (>= 8.0.20)
- Microsoft.Extensions.FileProviders.Embedded (>= 8.0.11)
- SplatDev.Cache (>= 1.0.0)
- SplatDev.Umbraco.Plugins.Mailer (>= 2.1.0)
- Umbraco.Cms.Core (>= 13.12.0)
- Umbraco.Cms.Infrastructure (>= 13.12.0)
- Umbraco.Cms.Web.BackOffice (>= 13.12.0)
- Umbraco.Cms.Web.Common (>= 13.12.0)
- Umbraco.Cms.Web.Website (>= 13.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.9 | 0 | 8/24/2026 |