Workes.ContentSystem
0.4.1
See the version list below for details.
dotnet add package Workes.ContentSystem --version 0.4.1
NuGet\Install-Package Workes.ContentSystem -Version 0.4.1
<PackageReference Include="Workes.ContentSystem" Version="0.4.1" />
<PackageVersion Include="Workes.ContentSystem" Version="0.4.1" />
<PackageReference Include="Workes.ContentSystem" />
paket add Workes.ContentSystem --version 0.4.1
#r "nuget: Workes.ContentSystem, 0.4.1"
#:package Workes.ContentSystem@0.4.1
#addin nuget:?package=Workes.ContentSystem&version=0.4.1
#tool nuget:?package=Workes.ContentSystem&version=0.4.1
Workes.ContentSystem
Workes.ContentSystem is an engine-neutral backend for storing and organizing extensible content entries.
It is intended to be useful anywhere an application needs an ordered or structured stream of entries: console history, chat, logs, notifications, forum-like views, feeds, audit trails, and custom UI timelines.
Highlights
- Extensible content entries instead of one fixed message shape.
- Pluggable content structures, starting with a configurable sequence structure.
- Structure-assigned and caller-keyed manager workflows.
- Structure-owned entry identity so different storage models can use the IDs that fit them.
- Optional change hooks for observing committed mutations.
- Entry snapshot round trips for portable entry serialization.
- A shared failure and exception model matching the style used in other Workes packages.
- Planned record and structure snapshots for fuller state transfer, plus optional attachment points for export, bridges, and platform-specific integration.
Installation
Install the package from NuGet:
dotnet add package Workes.ContentSystem --version 0.4.1
Or add a package reference:
<PackageReference Include="Workes.ContentSystem" Version="0.4.1" />
The package targets .NET Standard 2.1.
Quick Example
The structure-assigned-ID manager uses an explicit sequence structure here. ContentManager.For(...) lets the sequence expose its natural numeric ID type without making you write the generic type:
var content = ContentManager.For(
new ContentSequenceStructure(ContentOverflowPolicy.DropOldest(capacity: 200)));
content.Add(new PlainContentEntry(DateTimeOffset.UtcNow, "Server started."));
content.Add(new PlainContentEntry(DateTimeOffset.UtcNow, "Player joined: Workes"));
ContentEntryRecord first = content.Get(1);
foreach (ContentEntryRecord record in content.Records)
{
Console.WriteLine($"{record.Id}: {record.PlainText}");
}
For caller-provided IDs, use a keyed manager:
var content = new KeyedContentManager<string>();
content.Add("server-started", new PlainContentEntry(DateTimeOffset.UtcNow, "Server started."));
ContentEntryRecord record = content.Get("server-started");
See the Quick Start for the beginner-first walkthrough.
Documentation
Start here:
Focused guides:
- Content Entries
- Content Identity
- Content Structures
- Content Managers
- Content Changes
- Content Snapshots
- Content Snapshots
- Failures
- Export And Attachments
See the Changelog for release history and migration-sensitive changes.
License
Workes.ContentSystem is available under the MIT License.
| Product | Versions 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. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Adds entry snapshot round-tripping.