AlirezaMahDev.Extensions.DataManager
0.0.1-alpha7
dotnet add package AlirezaMahDev.Extensions.DataManager --version 0.0.1-alpha7
NuGet\Install-Package AlirezaMahDev.Extensions.DataManager -Version 0.0.1-alpha7
<PackageReference Include="AlirezaMahDev.Extensions.DataManager" Version="0.0.1-alpha7" />
<PackageVersion Include="AlirezaMahDev.Extensions.DataManager" Version="0.0.1-alpha7" />
<PackageReference Include="AlirezaMahDev.Extensions.DataManager" />
paket add AlirezaMahDev.Extensions.DataManager --version 0.0.1-alpha7
#r "nuget: AlirezaMahDev.Extensions.DataManager, 0.0.1-alpha7"
#:package AlirezaMahDev.Extensions.DataManager@0.0.1-alpha7
#addin nuget:?package=AlirezaMahDev.Extensions.DataManager&version=0.0.1-alpha7&prerelease
#tool nuget:?package=AlirezaMahDev.Extensions.DataManager&version=0.0.1-alpha7&prerelease
AlirezaMahDev.Extensions.DataManager
Project Description
This project provides a high-performance, file-based data management system for .NET applications. It implements the abstractions defined in AlirezaMahDev.Extensions.DataManager.Abstractions to offer a concrete, efficient data storage solution. The library is designed for scenarios requiring fast, reliable, and concurrent access to structured data with minimal overhead.
Key Features
- File-based Storage: Efficient storage of structured data in files
- Concurrent Access: Thread-safe operations for multi-threaded scenarios
- Memory Management: Smart caching and memory optimization
- Temporary Data Support: Specialized handling for temporary data
- Resource Management: Proper disposal of resources with
IDisposable - Asynchronous Operations: Full async support for all I/O operations
Core Components
IDataManager
The main interface for managing data access:
Open: Opens or creates a data store with the specified keyClose: Closes and cleans up resources for a specific data storeOpenTemp: Creates a temporary data store for short-lived data
DataAccess
Implements IDataAccess to provide:
- Memory-mapped file operations
- Thread-safe concurrent access
- Efficient data caching
- Resource management
DataManager
The main implementation of IDataManager that:
- Manages multiple data stores
- Handles resource cleanup
- Implements the builder pattern for configuration
Usage Example
// Configure services
services.AddDataManager(options =>
{
options.DirectoryPath = "Data";
options.FileFormat = "{0}.data";
});
// Resolve and use
using var scope = serviceProvider.CreateScope();
var dataManager = scope.ServiceProvider.GetRequiredService<IDataManager>();
// Open a data store
using var dataAccess = dataManager.Open("mydata");
// Get or create root location
var root = dataAccess.GetRoot();
// Work with data...
Configuration
The DataManager can be configured using DataManagerOptions:
services.AddDataManager(options =>
{
options.DirectoryPath = "App_Data"; // Base directory for data files
options.FileFormat = "{0}.dat"; // File naming pattern
});
Dependencies
Project Dependencies
- AlirezaMahDev.Extensions.DataManager.Abstractions: Core interfaces
- AlirezaMahDev.Extensions: Extension infrastructure
NuGet Dependencies
- System.IO.Hashing: For checksum and hash operations
Performance Considerations
- Caching: Implements in-memory caching of frequently accessed data
- Lazy Loading: Resources are loaded on demand
- Concurrent Access: Uses thread-safe collections for concurrent operations
- Efficient I/O: Utilizes
RandomAccessfor high-performance file operations
Error Handling
The library throws appropriate exceptions for error conditions:
ArgumentNullExceptionfor null argumentsObjectDisposedExceptionfor operations on disposed objectsIOExceptionfor I/O related errors
Thread Safety
All public members of DataManager and DataAccess are thread-safe and may be used concurrently from multiple threads.
Resource Management
All types that implement IDisposable should be properly disposed to release system resources. The recommended pattern is to use the using statement:
using var dataAccess = dataManager.Open("mydata");
// Use dataAccess here
Implementation Notes
- Uses memory-mapped files for efficient data access
- Implements a simple but effective caching mechanism
- Designed for both small and large data sets
- Supports both synchronous and asynchronous operations
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- AlirezaMahDev.Extensions (>= 0.0.1-alpha7)
- AlirezaMahDev.Extensions.DataManager.Abstractions (>= 0.0.1-alpha7)
- System.IO.Hashing (>= 10.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AlirezaMahDev.Extensions.DataManager:
| Package | Downloads |
|---|---|
|
AlirezaMahDev.Extensions.Brain
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.1-alpha7 | 411 | 12/8/2025 |
| 0.0.1-alpha | 269 | 12/7/2025 |