CShells.Providers.FluentStorage
0.0.28
dotnet add package CShells.Providers.FluentStorage --version 0.0.28
NuGet\Install-Package CShells.Providers.FluentStorage -Version 0.0.28
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="CShells.Providers.FluentStorage" Version="0.0.28" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CShells.Providers.FluentStorage" Version="0.0.28" />Directory.Packages.props
<PackageReference Include="CShells.Providers.FluentStorage" />Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CShells.Providers.FluentStorage --version 0.0.28
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CShells.Providers.FluentStorage, 0.0.28"
#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.
#:package CShells.Providers.FluentStorage@0.0.28
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CShells.Providers.FluentStorage&version=0.0.28Install as a Cake Addin
#tool nuget:?package=CShells.Providers.FluentStorage&version=0.0.28Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CShells.Providers.FluentStorage
FluentStorage integration provider for CShells enabling shell configuration storage in various backends.
Purpose
This package provides a shell settings provider that uses FluentStorage to load and persist shell configurations from various storage backends including local disk, Azure Blob Storage, AWS S3, and more.
When to Use
- Store shell configurations as individual JSON files instead of appsettings.json
- Load shell configurations from cloud storage (Azure Blob, AWS S3)
- Enable dynamic shell configuration updates without application restart
- Separate shell configuration from application configuration
- Multi-environment deployments with centralized configuration storage
Supported Storage Backends
FluentStorage supports numerous storage providers:
- Local disk - Directory-based file storage
- Azure Blob Storage - Azure cloud storage
- AWS S3 - Amazon cloud storage
- In-memory - Temporary storage for testing
- And many more FluentStorage providers
Installation
dotnet add package CShells.Providers.FluentStorage
dotnet add package FluentStorage
# Add specific FluentStorage provider packages as needed
# e.g., FluentStorage.Azure.Blobs, FluentStorage.AWS
Quick Start
Local Disk Storage
Create JSON files in a Shells folder (e.g., Default.json, Admin.json):
Shells/Default.json:
{
"Name": "Default",
"Features": ["Core", "Weather"],
"Configuration": {
"WebRouting": {
"Path": ""
}
}
}
Shells/Admin.json:
{
"Name": "Admin",
"Features": ["Core", "Admin"],
"Configuration": {
"WebRouting": {
"Path": "admin",
"RoutePrefix": "api/v1"
}
}
}
Program.cs:
using FluentStorage;
using CShells.Providers.FluentStorage;
var builder = WebApplication.CreateBuilder(args);
var shellsPath = Path.Combine(builder.Environment.ContentRootPath, "Shells");
var blobStorage = StorageFactory.Blobs.DirectoryFiles(shellsPath);
builder.AddShells(cshells =>
{
cshells.WithFluentStorageProvider(blobStorage);
});
var app = builder.Build();
app.MapShells();
app.Run();
Azure Blob Storage
using FluentStorage;
using FluentStorage.Azure.Blobs;
using CShells.Providers.FluentStorage;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("AzureStorage");
var blobStorage = StorageFactory.Blobs.AzureBlobStorage(connectionString, "shells");
builder.AddShells(cshells =>
{
cshells.WithFluentStorageProvider(blobStorage);
});
var app = builder.Build();
app.MapShells();
app.Run();
AWS S3 Storage
using FluentStorage;
using FluentStorage.AWS;
using CShells.Providers.FluentStorage;
var builder = WebApplication.CreateBuilder(args);
var blobStorage = StorageFactory.Blobs.AwsS3(
accessKeyId: "your-access-key",
secretAccessKey: "your-secret-key",
bucketName: "shells",
region: "us-east-1"
);
builder.AddShells(cshells =>
{
cshells.WithFluentStorageProvider(blobStorage);
});
var app = builder.Build();
app.MapShells();
app.Run();
File Naming Convention
Shell configuration files should be named with the shell name followed by .json:
Default.json→ Shell withName: "Default"Acme.json→ Shell withName: "Acme"Contoso.json→ Shell withName: "Contoso"
Configuration Format
Each JSON file should contain a complete shell configuration:
{
"Name": "ShellName",
"Features": ["Feature1", "Feature2"],
"Configuration": {
"WebRouting": {
"Path": "path",
"Host": "example.com",
"RoutePrefix": "api/v1"
},
"CustomSetting": "value"
}
}
Benefits
- Separation of concerns - Shell configurations separate from application settings
- Dynamic updates - Update shell configurations without rebuilding or redeploying
- Centralized management - Store configurations in cloud storage accessible across deployments
- Version control friendly - Individual files are easier to track and manage
- Environment-specific - Different storage backends for different environments
Learn More
- Main Documentation
- FluentStorage Documentation
- CShells Package - Core runtime
| 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 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- CShells (>= 0.0.28)
- FluentStorage (>= 6.0.0)
- JetBrains.Annotations (>= 2025年2月4日)
-
net8.0
- CShells (>= 0.0.28)
- FluentStorage (>= 6.0.0)
- JetBrains.Annotations (>= 2025年2月4日)
-
net9.0
- CShells (>= 0.0.28)
- FluentStorage (>= 6.0.0)
- JetBrains.Annotations (>= 2025年2月4日)
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 |
|---|---|---|
| 0.0.28 | 106 | 6/12/2026 |
| 0.0.27 | 102 | 6/12/2026 |
| 0.0.26 | 106 | 6/12/2026 |
| 0.0.25 | 107 | 6/11/2026 |
| 0.0.24 | 111 | 5/15/2026 |
| 0.0.23 | 103 | 5/15/2026 |
| 0.0.22 | 97 | 5/14/2026 |
| 0.0.21 | 106 | 5/12/2026 |
| 0.0.20 | 114 | 5/8/2026 |
| 0.0.19 | 95 | 5/6/2026 |
| 0.0.18 | 104 | 5/2/2026 |
| 0.0.17 | 114 | 4/29/2026 |
| 0.0.16 | 119 | 4/27/2026 |
| 0.0.15 | 108 | 4/27/2026 |
| 0.0.14 | 116 | 4/20/2026 |
| 0.0.13 | 118 | 4/17/2026 |
| 0.0.12 | 139 | 3/16/2026 |
| 0.0.11 | 124 | 2/28/2026 |
| 0.0.10 | 122 | 2/24/2026 |
| 0.0.9 | 120 | 2/15/2026 |
Loading failed