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.1net8.0net9.0net10.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
ISchemioOptions→IDataFuseOptionsSchemioOptionsBuilder→DataFuseOptionsBuilder
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
- Update NuGet packages to the new
DataFuse.*package names - Update
usingstatements fromSchemio.*namespaces toDataFuse.* - Update DI registration from
UseSchemio()toUseDataFuse()andSchemioOptionsBuildertoDataFuseOptionsBuilder - Update target framework if needed — packages now support
netstandard2.1,net8.0,net9.0, andnet10.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
- GitHub: CodeShayk/DataFuse.Net