Aspireng.Data
1.0.5
See the version list below for details.
dotnet add package Aspireng.Data --version 1.0.5
NuGet\Install-Package Aspireng.Data -Version 1.0.5
<PackageReference Include="Aspireng.Data" Version="1.0.5" />
<PackageVersion Include="Aspireng.Data" Version="1.0.5" />
<PackageReference Include="Aspireng.Data" />
paket add Aspireng.Data --version 1.0.5
#r "nuget: Aspireng.Data, 1.0.5"
#:package Aspireng.Data@1.0.5
#addin nuget:?package=Aspireng.Data&version=1.0.5
#tool nuget:?package=Aspireng.Data&version=1.0.5
Aspireng.Data
Aspireng.Data is a foundational .NET library for data access, storage abstraction, and service patterns, designed to support robust, secure, and flexible data operations. It provides a unified interface for working with SQL databases and file-based storage, along with extensible service layers, entity models, and utility extensions.
Features
- Unified Data Store Abstraction: Easily switch between SQL and file-based storage with a common interface.
- Service Layer Patterns: Base service classes for CRUD, caching, and business logic encapsulation.
- Entity Models: Standardized base entities with audit/history tracking.
- SQL Utilities: Rich static helpers for SQL Server operations, including bulk copy, scalar queries, and table exports.
- Data Encryption: Attribute-driven, recursive encryption/decryption for sensitive fields.
- Extensible Architecture: Designed for extension and integration with other Aspireng modules (Caching, Logging, Security, etc.).
- Operation Results: Consistent result objects for service operations, including status, messages, and error handling.
Project Structure
Aspireng.Data/
│
├── DataStores/ # Data access abstractions and implementations
│ ├── IDataStore.cs # Generic data store interface
│ ├── SqlDataStore.cs # SQL Server implementation
│ └── FileDataStore.cs # File-based implementation
│
├── Extensions/ # Utility and helper extension methods
│ ├── DataEncryptionExtensions.cs
│ ├── DataTableExtensions.cs
│ └── DataReaderExtensions.cs
│
├── Models/ # Core data models and entity definitions
│ ├── BaseEntity.cs
│ ├── ColumnInfo.cs
│ ├── TableInfo.cs
│ ├── QueryTypes.cs
│ └── History.cs
│
├── Services/ # Base service classes for business logic
│ ├── BaseService.cs
│ ├── BaseSqlService.cs
│ └── BaseServiceSingular.cs
│
├── MsSql.cs # Static SQL Server utility class
├── Aspireng.Data.csproj
└── Aspireng.Data.sln
Key Components
DataStores
- IDataStore<T>: Generic interface for CRUD and query operations.
- SqlDataStore<T>: SQL Server-backed implementation, using reflection and dynamic mapping.
- FileDataStore<T>: File-based storage using JSON serialization, with per-file concurrency control.
Models
- BaseEntity: Abstract base for all entities, with audit fields and change history.
- ColumnInfo / TableInfo: Metadata for dynamic table/column operations.
- QueryTypes: Enum for query result types (Scalar, List, Pivot, Table).
- History: Tracks changes and actions on entities.
Services
- BaseService<T>: Generic service with caching, CRUD, and query support.
- BaseSqlService<T>: SQL-specific service with query string support.
- BaseServiceSingular<T>: Service for singleton-like entities.
Extensions
- DataEncryptionExtensions: Attribute-driven, recursive encryption/decryption for entity fields.
- DataTableExtensions: Helpers for trimming, exporting, and manipulating DataTables.
- DataReaderExtensions: Helpers for mapping data readers to objects.
MsSql.cs
A comprehensive static utility class for SQL Server operations, including:
- Scalar and table queries
- Bulk copy (table-to-table, DataTable-to-table)
- CSV export
- Stored procedure execution
- Data validation and schema inspection
Result
All service operations return an Result
(from Aspireng.Operations), encapsulating:
- Success/failure status
- Messages and error details
- HTTP status codes (where relevant)
- Factory methods for common result types
Dependencies
- .NET Standard / .NET Core/5+/6+/7+/8+/9+
- Microsoft.Data.SqlClient
- Microsoft.Extensions.Caching.Abstractions
- Microsoft.Extensions.Caching.Memory
- System.Data.Odbc
- Other Aspireng modules (Caching, Logging, Operations, Reflection, Security, Text, Time)
Usage
Example: Using a Data Store
var sqlStore = new SqlDataStore<MyEntity>(connectionString);
await sqlStore.SaveAsync(new MyEntity { ... });
var entity = await sqlStore.GetByIdAsync("entity-id");
Example: Using a Service
var service = new MyEntityService(cache, sqlStore, logger);
var result = await service.GetAllAsync();
if (result.Succeeded) {
// Use result.Data
}
Example: Encrypting Entity Fields
public class User : BaseEntity
{
[Encrypt]
public string SensitiveData { get; set; }
}
Extending
- Implement new data stores by inheriting
IDataStore<T>
. - Create new services by inheriting
BaseService<T>
,BaseSqlService<T>
, orBaseServiceSingular<T>
. - Add new entity models by inheriting
BaseEntity
.
License
Licensed by Nova Globen AB. For commercial use or licensing, contact info@nova-globen.se.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 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. |
-
net9.0
- Aspireng.Cashing (>= 1.0.5)
- Aspireng.Constants (>= 1.0.5)
- Aspireng.Csv (>= 1.0.5)
- Aspireng.Exceptions (>= 1.0.5)
- Aspireng.Logging (>= 1.0.5)
- Aspireng.Reflections (>= 1.0.5)
- Aspireng.Security (>= 1.0.5)
- Aspireng.Serialization (>= 1.0.5)
- Aspireng.Text (>= 1.0.5)
- Aspireng.Time (>= 1.0.5)
- Microsoft.Data.SqlClient (>= 6.0.2)
- Microsoft.Data.Sqlite (>= 9.0.8)
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Caching.Memory (>= 9.0.8)
- Microsoft.Extensions.Configuration (>= 9.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.8)
- Microsoft.Extensions.Configuration.CommandLine (>= 9.0.8)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 9.0.8)
- Microsoft.Extensions.Configuration.FileExtensions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Json (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Hosting (>= 9.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Logging (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Options (>= 9.0.8)
- Microsoft.Extensions.Options.DataAnnotations (>= 9.0.8)
- Microsoft.SourceLink.GitHub (>= 8.0.0)
- System.Buffers (>= 4.6.1)
- System.Data.Odbc (>= 9.0.5)
- ZstdSharp.Port (>= 0.8.5)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Aspireng.Data:
Package | Downloads |
---|---|
Aspireng.ProcessHandler
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.