Bodu.Globalization.Calendar.Caching.Distributed
1.0.0
dotnet add package Bodu.Globalization.Calendar.Caching.Distributed --version 1.0.0
NuGet\Install-Package Bodu.Globalization.Calendar.Caching.Distributed -Version 1.0.0
<PackageReference Include="Bodu.Globalization.Calendar.Caching.Distributed" Version="1.0.0" />
<PackageVersion Include="Bodu.Globalization.Calendar.Caching.Distributed" Version="1.0.0" />
<PackageReference Include="Bodu.Globalization.Calendar.Caching.Distributed" />
paket add Bodu.Globalization.Calendar.Caching.Distributed --version 1.0.0
#r "nuget: Bodu.Globalization.Calendar.Caching.Distributed, 1.0.0"
#:package Bodu.Globalization.Calendar.Caching.Distributed@1.0.0
#addin nuget:?package=Bodu.Globalization.Calendar.Caching.Distributed&version=1.0.0
#tool nuget:?package=Bodu.Globalization.Calendar.Caching.Distributed&version=1.0.0
Bodu.Globalization.Calendar.Caching.Distributed
API stability — Stable. The public API surface is committed; breaking changes are reserved for a major-version bump per SemVer.
A shared storage backend for the
Bodu.Globalization.Calendar.Caching
notable-date cache, over any Microsoft.Extensions.Caching.Distributed.IDistributedCache — Redis,
SQL Server, or any other implementation. One instance computes a civil year; every instance reads it.
Backend selection and the full options surface are covered in Backends and options; the caching model itself is in Caching notable dates.
Installation
dotnet add package Bodu.Globalization.Calendar.Caching.Distributed
Targets net8.0. All types live in the Bodu.Globalization.Calendar.Caching namespace, alongside
the other backends.
services.AddDistributedNotableDateCache(/* … */); // any IDistributedCache
services.AddRedisNotableDateCache(/* … */); // Redis convenience overload
What it adds
| Type | Role |
|---|---|
DistributedNotableDateCache |
INotableDateCache over any IDistributedCache |
DistributedNotableDateCacheOptions |
Key prefix and entry configuration |
DistributedNotableDateCacheExtensions |
The AddDistributedNotableDateCache / AddRedisNotableDateCache registrations |
It is a storage backend only — the caching policy (per-year units, time-to-live plus
resource-version invalidation, single-flight cold misses, best-effort storage) lives in
CachingNotableDateService and is identical across every backend.
Two consequences worth knowing for a shared cache. Single-flight coalescing is per process, so each instance may compute a cold year once; the resource-version token keeps that correct, since an entry written under one resource version is never served to a process on another. And the best-effort contract matters more here than on local storage: a failed read is a miss and a failed write is skipped, so an unreachable Redis degrades to recomputation rather than an outage.
Choosing a backend
Use this package when instances should share computed years. For durability on a single machine
use …Caching.Sqlite;
for a single short-lived process the in-memory backend in the core caching package is enough.
Part of the Bodu utility library.
| 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
- Bodu.Core (>= 1.0.0)
- Bodu.Globalization.Calendar (>= 1.0.0)
- Bodu.Globalization.Calendar.Caching (>= 1.0.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
-
net8.0
- Bodu.Core (>= 1.0.0)
- Bodu.Globalization.Calendar (>= 1.0.0)
- Bodu.Globalization.Calendar.Caching (>= 1.0.0)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 8.0.28)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.