FractalDataWorks.Data.DataStores.Abstractions
0.4.0-preview.6
dotnet add package FractalDataWorks.Data.DataStores.Abstractions --version 0.4.0-preview.6
NuGet\Install-Package FractalDataWorks.Data.DataStores.Abstractions -Version 0.4.0-preview.6
<PackageReference Include="FractalDataWorks.Data.DataStores.Abstractions" Version="0.4.0-preview.6" />
<PackageVersion Include="FractalDataWorks.Data.DataStores.Abstractions" Version="0.4.0-preview.6" />
<PackageReference Include="FractalDataWorks.Data.DataStores.Abstractions" />
paket add FractalDataWorks.Data.DataStores.Abstractions --version 0.4.0-preview.6
#r "nuget: FractalDataWorks.Data.DataStores.Abstractions, 0.4.0-preview.6"
#:package FractalDataWorks.Data.DataStores.Abstractions@0.4.0-preview.6
#addin nuget:?package=FractalDataWorks.Data.DataStores.Abstractions&version=0.4.0-preview.6&prerelease
#tool nuget:?package=FractalDataWorks.Data.DataStores.Abstractions&version=0.4.0-preview.6&prerelease
FractalDataWorks.Data.DataStores.Abstractions
Abstractions for data store operations providing unified access patterns for databases, file systems, REST APIs, and other data sources.
Overview
Defines contracts for data store operations representing WHERE data is physically stored, separate from HOW it is accessed (connections) or WHAT format it is in (containers):
- IDataStore: Core abstraction for data storage locations
- IDataStoreType: Metadata about storage backend capabilities via TypeCollection pattern
- DataStoreBase: Base implementation with common functionality
Target Framework: .NET Standard 2.0
Dependencies:
- FractalDataWorks.Data.Abstractions
- FractalDataWorks.Collections
- FractalDataWorks.Results
Key Interfaces
IDataStore
From IDataStore.cs:21-120:
public interface IDataStore
{
string Id { get; }
string Name { get; }
string StoreType { get; }
string TranslatorType { get; }
string Location { get; }
IReadOnlyDictionary<string, object> Metadata { get; }
IEnumerable<IDataPath> AvailablePaths { get; }
Task<IGenericResult> TestConnection();
Task<IGenericResult<IEnumerable<IDataPath>>> DiscoverPaths();
IDataPath? GetPath(string pathName);
IGenericResult ValidateConnectionCompatibility(string connectionType);
}
IDataStore<TConfiguration>
From IDataStore.cs:131-151:
public interface IDataStore<TConfiguration> : IDataStore
where TConfiguration : class
{
TConfiguration Configuration { get; }
Task<IGenericResult> UpdateConfiguration(TConfiguration configuration);
}
IDataStoreType
From IDataStoreType.cs:12-30:
public interface IDataStoreType : ITypeOption<int>
{
bool SupportsRead { get; }
bool SupportsWrite { get; }
bool SupportsTransactions { get; }
}
DataStoreTypes (TypeCollection)
From DataStoreTypes.cs:15-19:
[TypeCollection(typeof(DataStoreTypeBase), typeof(IDataStoreType), typeof(DataStoreTypes))]
public abstract partial class DataStoreTypes : TypeCollectionBase<DataStoreTypeBase, IDataStoreType>
{
}
Usage
From test file SqlServerDataStoreTests.cs:13-34:
// Create a data store with configuration
var config = new SqlServerConfiguration
{
ConnectionString = "Server=localhost;Database=test;"
};
var dataStore = new SqlServerDataStore("test-id", "test-name", config);
// Test connectivity
var result = await dataStore.TestConnection();
if (result.IsSuccess)
{
// Discover available paths (tables, views)
var pathsResult = await dataStore.DiscoverPaths();
}
// Validate connection type compatibility
var compatResult = dataStore.ValidateConnectionCompatibility("MsSql");
Best Practices
- Use
TestConnection()to validate configuration before operations - Call
ValidateConnectionCompatibility()to verify store-connection compatibility - Implement
DataStoreBase<TConfiguration>for common functionality - Return
IGenericResultfor all operations that can fail - Use TypeCollection pattern for extensible store types
Related Packages
- FractalDataWorks.Data.Abstractions - Core data abstractions including IDataPath
- FractalDataWorks.Data.DataStores.SqlServer - SQL Server implementation
- FractalDataWorks.Results - Result types for Railway-Oriented Programming
| 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. 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.0
- FractalDataWorks.Collections (>= 0.4.0-preview.6)
- FractalDataWorks.Data.Abstractions (>= 0.4.0-preview.6)
- FractalDataWorks.MessageLogging.Abstractions (>= 0.4.0-preview.6)
- FractalDataWorks.Results (>= 0.4.0-preview.6)
- FractalDataWorks.Services.Abstractions (>= 0.4.0-preview.6)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
- System.Collections.Immutable (>= 10.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FractalDataWorks.Data.DataStores.Abstractions:
| Package | Downloads |
|---|---|
|
FractalDataWorks.Configuration.MsSql
Development tools and utilities for the FractalDataWorks ecosystem. Build: |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|