Project: ManagedCode.Storage.Core Owned by: ManagedCode.Storage maintainers
Parent: ../AGENTS.md
- Defines the shared storage contracts, options, helpers, exceptions, and factory abstractions used by every other package.
- Exists to keep vendor-specific providers and delivery packages isolated behind stable
IStorage-based interfaces.
IStorage.csProviders/IStorageFactory.csProviders/IStorageProvider.csExtensions/ServiceCollectionExtensions.csBaseStorage.cs
- In scope: public storage abstractions, shared models or helpers, and DI bootstrap for the storage factory
- Out of scope: vendor SDK logic, HTTP or SignalR transports, Orleans glue, VFS-specific behavior, and test-only fakes
- Protected or high-risk areas:
IStoragecontract shape, keyed/default factory resolution, and exceptions consumed by downstream packages
build:dotnet build ManagedCode.Storage.Core.csprojtest:dotnet test ../Tests/ManagedCode.Storage.Tests/ManagedCode.Storage.Tests.csproj --configuration Releaseformat:dotnet format ../ManagedCode.Storage.slnx- Active test framework:
xUnit - Runner model:
VSTest - Analyzer severity lives in the repo-root
.editorconfig.
mcaf-dotnetmcaf-testingmcaf-dotnet-xunitmcaf-dotnet-quality-cimcaf-solid-maintainabilitymcaf-dotnet-features
- Stricter maintainability limits: none; inherit the root defaults.
- Required local docs:
docs/Architecture.md,README.md, and the nearest feature or ADR docs when public behavior changes. - Local exception policy: inherit the root
exception_policyand document any project-specific exception in the nearest ADR, feature doc, or localAGENTS.md.
- Treat
IStorage,IStorageProvider, and factory abstractions as public contracts; changing them is an ask-first API change. - Keep shared helpers vendor-agnostic; SDK-specific behavior belongs in provider projects, not in Core.
- Preserve keyed and default storage resolution semantics because VFS, server integrations, and Orleans depend on them.