Schemio.Core 2.0.0

dotnet add package Schemio.Core --version 2.0.0                
NuGet\Install-Package Schemio.Core -Version 2.0.0                
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="Schemio.Core" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Schemio.Core --version 2.0.0                
#r "nuget: Schemio.Core, 2.0.0"                
#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.
// Install Schemio.Core as a Cake Addin
#addin nuget:?package=Schemio.Core&version=2.0.0

// Install Schemio.Core as a Cake Tool
#tool nuget:?package=Schemio.Core&version=2.0.0                

Schemio v2.0

License: MIT Master-Build GitHub Release Master-CodeQL .Net 9.0

Nuget Packages
Package Latest Details
Schemio.Core NuGet version Provides core functionality to configure nested queries and transformers. With ability to map schema paths (XPath/JSONPath) to entity's object graph. No QueryEngine provided and requires implementing IQueryEngine to execute IQuery instances.
Schemio.SQL NuGet version Provides schemio with query engine using Dapper to execute SQL queries.
Schemio.EntityFramework NuGet version Provides schemio with Entity Framework query engine to execute queries using DbContext.
Schemio.API NuGet version Provides schemio with Web Api query engine to execute apis using HttpClient.

Concept

What is Schemio?

Schemio is a data aggregation framework using queries that can target different data platforms.

Key benefits:

  • allows fetching aggregated data from heterogeneous data storages. You could combine queries targetting different data platforms (example. SQL, API, Cache) to return an aggregated data entity.
  • allows selectively fetching only parts of the aggregated data entity. You could retrieve an aggregated data entity with only sections of its object graph populated with data depending upon the schema paths passed with the request.

When to use Schemio?

Schemio is perfect fit for many use cases. Few examples that require the service tier to dynamically fetch aggregated data with high performance, availability and scalability are

  • Aggregated APIs
  • Data Reporting
  • Document Generation (with templated data)
  • Content Management Systems
  • Many more

Getting Started?

i. Installation

Install the latest nuget package as appropriate for Core, Web API, SQL using Dapper or EntityFramework using commands below.

Scemio.Core - for installing schemio for bespoke implementation of query engine.

NuGet\Install-Package Schemio.Core

Schemio.SQL - for installing schemio for SQL with Dapper engine.

NuGet\Install-Package Schemio.SQL 

Schemio.EntityFramework - for installing schemio for SQL with EntityFramework engine.

NuGet\Install-Package Schemio.EntityFramework

Schemio.API - for installing schemio for Web API with HttpClient engine.

NuGet\Install-Package Schemio.API

ii. Developer Guide

Please see Developer Guide for details on how to implement schemio in your project.

Support

If you are having problems, please let me know by raising a new issue.

License

This project is licensed with the MIT license.

Version History

The main branch is now on .NET 8.0. The following previous versions are available: | Version | Release Notes | Developer Guide | | -------- | --------|--------| | v1.0.0 | Notes | Guide | | v2.0.0 | Notes | Guide |

Credits

Thank you for reading. Please fork, explore, contribute and report. Happy Coding !! 😃

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Schemio.Core:

Package Downloads
Schemio.EntityFramework

.Net Library to hydrate data entities by object graph using schema paths (supports XPath & JSONPath). Supports Entity Framework for querying database.

Schemio.SQL

.Net Library to hydrate data entities by object graph using schema paths (supports XPath & JSONPath). Supports Dapper for querying SQL database.

Schemio.API

.Net Library to hydrate data entities by object graph using schema paths (supports XPath & JSONPath). Supports Web API using HttpClient.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 42 11/21/2024
1.0.0 133 10/2/2024

Changes
- `Entity Schema` renamed to `Entity Configuration` and requires implementing `EntityContfiguration<TEntity>`.
- `IRootQuery`, `IChildQuery`, `BaseRootQuery<TParameter, TResult>` & `BaseChildQuery<TParameter,TResult>` removed.
- Both Parent and child queries need to implement `BaseQuery<TResult>` and provide override for `isContextResolved()` and `ResolveQuery()` methods.
- `IoC` registration streamlined with `fluent interface` for container configuration.
- Renamed `IEntityContext` to `IEntityRequest`.