Architecture
ArturRios.Data is a family of small, focused NuGet packages. This page shows how they fit together, the key types in each, and the design principles they…
DataOutput / ProcessOutput envelope, so infrastructure failures —…ArturRios.Data is a modular data-access toolkit for .NET. It gives you one consistent,
envelope-based repository style across relational databases (EF Core over PostgreSQL / MySQL /
SQLite, plus a Dapper read path) and NoSQL stores (MongoDB, DynamoDB), plus file export
writers (CSV, JSON, TXT, MessagePack, Excel).
Every read/write operation returns a DataOutput / ProcessOutput
envelope, so infrastructure failures — including optimistic-concurrency conflicts — surface as errors
on the result rather than as unhandled exceptions.
Each backend is a separate NuGet package, so you install only what you use. The relational packages
share a common core; the NoSQL and export packages are standalone. Everything depends on
ArturRios.Output for the envelopes.
flowchart TB
Output["ArturRios.Output<br/><i>DataOutput / ProcessOutput envelopes</i>"]
subgraph Relational["Relational stack — EF Core"]
direction TB
Core["ArturRios.Data.Relational.Core"]
Sqlite["ArturRios.Data.Sqlite"]
Postgres["ArturRios.Data.PostgreSql"]
MySql["ArturRios.Data.MySql"]
Dapper["ArturRios.Data.Dapper"]
end
subgraph NoSQL["NoSQL stores — standalone"]
direction TB
Mongo["ArturRios.Data.MongoDb"]
Dynamo["ArturRios.Data.DynamoDb"]
end
subgraph Export["File export — standalone"]
direction TB
ExportCore["ArturRios.Data.Export"]
ExportExcel["ArturRios.Data.Export.Excel"]
end
Sqlite --> Core
Postgres --> Core
MySql --> Core
Dapper --> Core
Core --> Output
Mongo --> Output
Dynamo --> Output
ExportExcel --> ExportCore
ExportCore --> Output| Package | Backend | Status |
|---|---|---|
ArturRios.Data.Relational.Core | EF Core abstractions (shared) | Available |
ArturRios.Data.Sqlite | SQLite | Available |
ArturRios.Data.PostgreSql | PostgreSQL | Available |
ArturRios.Data.MySql | MySQL / MariaDB | Available |
ArturRios.Data.Dapper | Raw-SQL reads over the EF connection | Available |
ArturRios.Data.MongoDb | MongoDB document store | Available |
ArturRios.Data.DynamoDb | AWS DynamoDB | Available |
ArturRios.Data.Export | CSV / JSON / TXT / MessagePack writers | Available |
ArturRios.Data.Export.Excel | Excel .xlsx export add-on | Available |
Requires .NET 10.0 or later. Install the package(s) for your backend:
# Relational (EF Core) — the core + a provider matching your engine:
dotnet add package ArturRios.Data.Relational.Core
dotnet add package ArturRios.Data.Sqlite # or .PostgreSql / .MySql
# Optional raw-SQL read path (relational):
dotnet add package ArturRios.Data.Dapper
# NoSQL (standalone — no core needed):
dotnet add package ArturRios.Data.MongoDb
dotnet add package ArturRios.Data.DynamoDb
# File export (standalone — no core needed):
dotnet add package ArturRios.Data.Export
dotnet add package ArturRios.Data.Export.Excel # optional — adds ExportFormat.Excel
All operations return a DataOutput<T> (data + success/errors) or, for operations with no payload
(deletes, transactions), a ProcessOutput. Inspect Success / Data / Errors instead of catching
exceptions.
classDiagram
class ProcessOutput {
+bool Success
+List~string~ Errors
+List~string~ Messages
}
class DataOutput~T~ {
+T Data
}
ProcessOutput <|-- DataOutputFind, the LINQ
Query() escape hatch, transactions, and concurrency.[DynamoDBVersion] concurrency.The source lives at github.com/artur-rios/dotnet-data, licensed under the MIT License.
ArturRios.Data is a family of small, focused NuGet packages. This page shows how they fit together, the key types in each, and the design principles they…
The relational stack is a provider-agnostic data-access layer over Entity Framework Core. You install the core plus a provider for your engine; the…
ArturRios.Data.MongoDb is a standalone document-repository package over MongoDB.Driver — it does not depend on the relational core, so it pulls in no…
ArturRios.Data.DynamoDb is a standalone, async-only repository over the AWS SDK’s high-level object-persistence model (IDynamoDBContext). It does not…
ArturRios.Data.Export turns any IEnumerable<T> into CSV, JSON, TXT, or MessagePack, over a stream or straight to a file….