Skip to content

Release/v3.0.0#5

Merged
NinjaRocks merged 3 commits intomasterfrom
release/v3.0.0
Mar 30, 2026
Merged

Release/v3.0.0#5
NinjaRocks merged 3 commits intomasterfrom
release/v3.0.0

Conversation

@NinjaRocks
Copy link
Copy Markdown
Member

@NinjaRocks NinjaRocks commented Mar 30, 2026

DataFuse v3.0.0 Release Notes

Release Date: March 30, 2026

DataFuse v3.0.0 is a major release that introduces the new MongoDB adapter, transform hooks, query result caching, and multi-target framework support. This release also completes the project rebrand from Schemio to DataFuse, which includes breaking namespace and package changes.


New Features

MongoDB Adapter

New DataFuse.Adapters.MongoDB package for aggregating data from MongoDB collections alongside SQL, REST API, and Entity Framework sources.

  • Built on MongoDB Driver 3.4.0
  • Implements the same query/engine pattern as other adapters
  • Register via .WithEngine(c => new DataFuse.Adapters.MongoDB.QueryEngine(mongoDatabase))
public class ReviewsMongoQuery : MongoQuery<CollectionResult<ReviewResult>>
{
    protected override Func<IMongoDatabase, Task<CollectionResult<ReviewResult>>> GetQuery(
        IDataContext context, IQueryResult? parentQueryResult)
    {
        var product = (ProductResult)parentQueryResult;
        return async database =>
        {
            var collection = database.GetCollection<ReviewResult>("reviews");
            var reviews = await collection.Find(r => r.ProductId == product.Id).ToListAsync();
            return new CollectionResult<ReviewResult>(reviews);
        };
    }
}

Transform Hooks

Pre and post transformation hooks provide fine-grained control over the data transformation pipeline.

  • PreTransform hooks execute before a transformation and can cancel it via context.Cancel()
  • PostTransform hooks execute after a transformation and can request repetition via context.Repeat()

Query Result Caching

New CacheResultAttribute allows marking expensive query results for automatic caching to improve performance.

Multi-Target Framework Support

All packages (except EntityFramework) now target multiple frameworks:

  • netstandard2.1
  • net8.0
  • net9.0
  • net10.0

DataFuse.Adapters.EntityFramework targets net10.0 only (EF Core 10.0 dependency).


Breaking Changes

Project Rename (Schemio to DataFuse)

All namespaces, packages, and registration APIs have been renamed:

v2.x (Schemio) v3.0.0 (DataFuse)
Schemio.Core (contracts) DataFuse.Adapters.Abstraction
Schemio.Core (impl) DataFuse.Integration
Schemio.SQL DataFuse.Adapters.SQL
Schemio.EntityFramework DataFuse.Adapters.EntityFramework
Schemio.API DataFuse.Adapters.WebAPI

DI Registration

// Before (v2.x)
services.UseSchemio(new SchemioOptionsBuilder() ...);

// After (v3.0.0)
services.UseDataFuse(new DataFuseOptionsBuilder() ...);

Interface Renames

  • ISchemioOptionsIDataFuseOptions
  • SchemioOptionsBuilderDataFuseOptionsBuilder

NuGet Package Names

All package IDs have changed. Update your package references:

Old Package New Package
Schemio.Core DataFuse.Adapters.Abstraction
Schemio.Core DataFuse.Integration
Schemio.SQL DataFuse.Adapters.SQL
Schemio.EntityFramework DataFuse.Adapters.EntityFramework
Schemio.API DataFuse.Adapters.WebAPI

Migration Guide

  1. Update NuGet packages to the new DataFuse.* package names
  2. Update using statements from Schemio.* namespaces to DataFuse.*
  3. Update DI registration from UseSchemio() to UseDataFuse() and SchemioOptionsBuilder to DataFuseOptionsBuilder
  4. Update target framework if needed — packages now support netstandard2.1, net8.0, net9.0, and net10.0

Packages

Package Version Frameworks
DataFuse.Adapters.Abstraction 3.0.0 netstandard2.1, net8.0, net9.0, net10.0
DataFuse.Integration 3.0.0 netstandard2.1, net8.0, net9.0, net10.0
DataFuse.Adapters.SQL 3.0.0 netstandard2.1, net8.0, net9.0, net10.0
DataFuse.Adapters.EntityFramework 3.0.0 net10.0
DataFuse.Adapters.WebAPI 3.0.0 netstandard2.1, net8.0, net9.0, net10.0
DataFuse.Adapters.MongoDB 3.0.0 netstandard2.1, net8.0, net9.0, net10.0

Repository

@NinjaRocks NinjaRocks requested review from a team and Nshai March 30, 2026 20:29
@NinjaRocks NinjaRocks merged commit b08cdca into master Mar 30, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants