Skip to content

Commit 71f8af7

Browse files
committed
- Add wiki and release notes (v3.0.0)
1 parent b08cdca commit 71f8af7

File tree

4 files changed

+230
-1137
lines changed

4 files changed

+230
-1137
lines changed

.claude/settings.local.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@
2020
"Read(//c/Users/najaf/.nuget/packages/$pkg/**)",
2121
"Bash(done)",
2222
"Bash(git push:*)",
23-
"Bash(git checkout:*)"
23+
"Bash(git checkout:*)",
24+
"Bash(find /c/Work/Projects/Published/DataFuse -name *.md -type f)",
25+
"Bash(ls:*)",
26+
"Bash(find /c/Work/Projects/Published/DataFuse/src -name *.cs -type f)",
27+
"Bash(xargs grep:*)"
2428
]
2529
}
2630
}

docs/v3.0.0-Release_Notes.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# DataFuse v3.0.0 Release Notes
2+
3+
**Release Date:** March 30, 2026
4+
5+
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.
6+
7+
---
8+
9+
## New Features
10+
11+
### MongoDB Adapter
12+
13+
New `DataFuse.Adapters.MongoDB` package for aggregating data from MongoDB collections alongside SQL, REST API, and Entity Framework sources.
14+
15+
- Built on MongoDB Driver 3.4.0
16+
- Implements the same query/engine pattern as other adapters
17+
- Register via `.WithEngine(c => new DataFuse.Adapters.MongoDB.QueryEngine(mongoDatabase))`
18+
19+
```csharp
20+
public class ReviewsMongoQuery : MongoQuery<CollectionResult<ReviewResult>>
21+
{
22+
protected override Func<IMongoDatabase, Task<CollectionResult<ReviewResult>>> GetQuery(
23+
IDataContext context, IQueryResult? parentQueryResult)
24+
{
25+
var product = (ProductResult)parentQueryResult;
26+
return async database =>
27+
{
28+
var collection = database.GetCollection<ReviewResult>("reviews");
29+
var reviews = await collection.Find(r => r.ProductId == product.Id).ToListAsync();
30+
return new CollectionResult<ReviewResult>(reviews);
31+
};
32+
}
33+
}
34+
```
35+
36+
### Transform Hooks
37+
38+
Pre and post transformation hooks provide fine-grained control over the data transformation pipeline.
39+
40+
- **PreTransform hooks** execute before a transformation and can cancel it via `context.Cancel()`
41+
- **PostTransform hooks** execute after a transformation and can request repetition via `context.Repeat()`
42+
43+
### Query Result Caching
44+
45+
New `CacheResultAttribute` allows marking expensive query results for automatic caching to improve performance.
46+
47+
### Multi-Target Framework Support
48+
49+
All packages (except EntityFramework) now target multiple frameworks:
50+
51+
- `netstandard2.1`
52+
- `net8.0`
53+
- `net9.0`
54+
- `net10.0`
55+
56+
`DataFuse.Adapters.EntityFramework` targets `net10.0` only (EF Core 10.0 dependency).
57+
58+
---
59+
60+
## Breaking Changes
61+
62+
### Project Rename (Schemio to DataFuse)
63+
64+
All namespaces, packages, and registration APIs have been renamed:
65+
66+
| v2.x (Schemio) | v3.0.0 (DataFuse) |
67+
|-----------------------------|--------------------------------------|
68+
| `Schemio.Core` (contracts) | `DataFuse.Adapters.Abstraction` |
69+
| `Schemio.Core` (impl) | `DataFuse.Integration` |
70+
| `Schemio.SQL` | `DataFuse.Adapters.SQL` |
71+
| `Schemio.EntityFramework` | `DataFuse.Adapters.EntityFramework` |
72+
| `Schemio.API` | `DataFuse.Adapters.WebAPI` |
73+
74+
### DI Registration
75+
76+
```csharp
77+
// Before (v2.x)
78+
services.UseSchemio(new SchemioOptionsBuilder() ...);
79+
80+
// After (v3.0.0)
81+
services.UseDataFuse(new DataFuseOptionsBuilder() ...);
82+
```
83+
84+
### Interface Renames
85+
86+
- `ISchemioOptions``IDataFuseOptions`
87+
- `SchemioOptionsBuilder``DataFuseOptionsBuilder`
88+
89+
### NuGet Package Names
90+
91+
All package IDs have changed. Update your package references:
92+
93+
| Old Package | New Package |
94+
|------------------------|--------------------------------------|
95+
| `Schemio.Core` | `DataFuse.Adapters.Abstraction` |
96+
| `Schemio.Core` | `DataFuse.Integration` |
97+
| `Schemio.SQL` | `DataFuse.Adapters.SQL` |
98+
| `Schemio.EntityFramework` | `DataFuse.Adapters.EntityFramework` |
99+
| `Schemio.API` | `DataFuse.Adapters.WebAPI` |
100+
101+
---
102+
103+
## Migration Guide
104+
105+
1. **Update NuGet packages** to the new `DataFuse.*` package names
106+
2. **Update `using` statements** from `Schemio.*` namespaces to `DataFuse.*`
107+
3. **Update DI registration** from `UseSchemio()` to `UseDataFuse()` and `SchemioOptionsBuilder` to `DataFuseOptionsBuilder`
108+
4. **Update target framework** if needed — packages now support `netstandard2.1`, `net8.0`, `net9.0`, and `net10.0`
109+
110+
---
111+
112+
## Packages
113+
114+
| Package | Version | Frameworks |
115+
|--------------------------------------|---------|----------------------------------------------|
116+
| `DataFuse.Adapters.Abstraction` | 3.0.0 | netstandard2.1, net8.0, net9.0, net10.0 |
117+
| `DataFuse.Integration` | 3.0.0 | netstandard2.1, net8.0, net9.0, net10.0 |
118+
| `DataFuse.Adapters.SQL` | 3.0.0 | netstandard2.1, net8.0, net9.0, net10.0 |
119+
| `DataFuse.Adapters.EntityFramework` | 3.0.0 | net10.0 |
120+
| `DataFuse.Adapters.WebAPI` | 3.0.0 | netstandard2.1, net8.0, net9.0, net10.0 |
121+
| `DataFuse.Adapters.MongoDB` | 3.0.0 | netstandard2.1, net8.0, net9.0, net10.0 |
122+
123+
---
124+
125+
## Repository
126+
127+
- **GitHub:** [CodeShayk/DataFuse.Net](https://github.com/CodeShayk/DataFuse.Net)

docs/wiki.md

Lines changed: 98 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
8. [Advanced Features](#advanced-features)
2323
9. [Architecture](#architecture)
2424
10. [Best Practices](#best-practices)
25-
11. [Getting Support](#getting-support)
25+
11. [Migrating from Schemio to DataFuse](#migrating-from-schemio-v2x-to-datafuse-v300)
26+
12. [Getting Support](#getting-support)
2627

2728
---
2829

@@ -550,13 +551,14 @@ Request/response header management, JSON deserialization.
550551

551552
### Compatibility
552553

553-
| Package | .NET Framework | .NET Standard | .NET |
554-
|---|---|---|---|
555-
| DataFuse.Integration | 4.6.2+ | 2.0, 2.1 | 9.0+ |
556-
| DataFuse.Adapters.SQL | 4.6.2+ | 2.1 | 9.0+ |
557-
| DataFuse.Adapters.EntityFramework | - | - | 9.0+ |
558-
| DataFuse.Adapters.MongoDB | - | - | 9.0+ |
559-
| DataFuse.Adapters.WebAPI | 4.6.2+ | 2.0, 2.1 | 9.0+ |
554+
| Package | Target Frameworks |
555+
|---|---|
556+
| DataFuse.Adapters.Abstraction | netstandard2.1, net8.0, net9.0, net10.0 |
557+
| DataFuse.Integration | netstandard2.1, net8.0, net9.0, net10.0 |
558+
| DataFuse.Adapters.SQL | netstandard2.1, net8.0, net9.0, net10.0 |
559+
| DataFuse.Adapters.EntityFramework | net10.0 |
560+
| DataFuse.Adapters.MongoDB | netstandard2.1, net8.0, net9.0, net10.0 |
561+
| DataFuse.Adapters.WebAPI | netstandard2.1, net8.0, net9.0, net10.0 |
560562

561563
---
562564

@@ -1120,6 +1122,94 @@ services.AddHttpClient();
11201122

11211123
---
11221124

1125+
## Migrating from Schemio (v2.x) to DataFuse (v3.0.0)
1126+
1127+
DataFuse v3.0.0 is a complete rebrand of the Schemio framework. All package names, namespaces, and registration APIs have changed. Follow this guide to upgrade your project.
1128+
1129+
### Step 1: Update NuGet Packages
1130+
1131+
Remove the old Schemio packages and install the new DataFuse equivalents:
1132+
1133+
| Old Package (Remove) | New Package (Install) |
1134+
|----------------------------|--------------------------------------|
1135+
| `Schemio.Core` | `DataFuse.Adapters.Abstraction` + `DataFuse.Integration` |
1136+
| `Schemio.SQL` | `DataFuse.Adapters.SQL` |
1137+
| `Schemio.EntityFramework` | `DataFuse.Adapters.EntityFramework` |
1138+
| `Schemio.API` | `DataFuse.Adapters.WebAPI` |
1139+
1140+
```bash
1141+
# Remove old packages
1142+
dotnet remove package Schemio.Core
1143+
dotnet remove package Schemio.SQL
1144+
dotnet remove package Schemio.EntityFramework
1145+
dotnet remove package Schemio.API
1146+
1147+
# Install new packages
1148+
dotnet add package DataFuse.Integration
1149+
dotnet add package DataFuse.Adapters.SQL
1150+
dotnet add package DataFuse.Adapters.EntityFramework
1151+
dotnet add package DataFuse.Adapters.WebAPI
1152+
dotnet add package DataFuse.Adapters.MongoDB # New in v3.0.0
1153+
```
1154+
1155+
### Step 2: Update Namespaces
1156+
1157+
Find and replace `using` statements across your codebase:
1158+
1159+
| Old Namespace | New Namespace |
1160+
|----------------------------|--------------------------------------|
1161+
| `using Schemio;` | `using DataFuse.Adapters.Abstraction;` |
1162+
| `using Schemio.SQL;` | `using DataFuse.Adapters.SQL;` |
1163+
| `using Schemio.EntityFramework;` | `using DataFuse.Adapters.EntityFramework;` |
1164+
| `using Schemio.API;` | `using DataFuse.Adapters.WebAPI;` |
1165+
1166+
### Step 3: Update DI Registration
1167+
1168+
The service registration method and options builder have been renamed:
1169+
1170+
```csharp
1171+
// Before (Schemio v2.x)
1172+
services.UseSchemio(new SchemioOptionsBuilder()
1173+
.WithEngine(c => new QueryEngine(sqlConfig))
1174+
.WithPathMatcher(c => new XPathMatcher())
1175+
.WithEntityConfiguration<Customer>(c => new CustomerConfiguration()));
1176+
1177+
// After (DataFuse v3.0.0)
1178+
services.UseDataFuse(new DataFuseOptionsBuilder()
1179+
.WithEngine(c => new QueryEngine(sqlConfig))
1180+
.WithPathMatcher(c => new XPathMatcher())
1181+
.WithEntityConfiguration<Customer>(c => new CustomerConfiguration()));
1182+
```
1183+
1184+
**Changed APIs:**
1185+
1186+
| Old (Schemio) | New (DataFuse) |
1187+
|----------------------------|--------------------------------------|
1188+
| `UseSchemio()` | `UseDataFuse()` |
1189+
| `SchemioOptionsBuilder` | `DataFuseOptionsBuilder` |
1190+
| `ISchemioOptions` | `IDataFuseOptions` |
1191+
1192+
### Step 4: Verify
1193+
1194+
No changes are required to your queries, transformers, entity configurations, or schema definitions — only the package references, namespaces, and DI registration need updating. After making these changes:
1195+
1196+
1. Build the solution and resolve any remaining namespace errors
1197+
2. Run your existing tests to confirm behavior is unchanged
1198+
3. Verify DI registration at startup
1199+
1200+
### New in v3.0.0
1201+
1202+
After migrating, you can take advantage of new features:
1203+
1204+
- **MongoDB Adapter** — aggregate data from MongoDB collections with `DataFuse.Adapters.MongoDB`
1205+
- **Transform Hooks** — use `ITransformerHooks` with `PreTransformContext` and `PostTransformContext` for pipeline control
1206+
- **Query Result Caching** — mark results with `[CacheResult]` for automatic caching
1207+
- **Multi-Target Framework Support** — packages now support `netstandard2.1`, `net8.0`, `net9.0`, and `net10.0`
1208+
1209+
See the [Release Notes](RELEASE_NOTES.md) for full details.
1210+
1211+
---
1212+
11231213
## Getting Support
11241214

11251215
- **GitHub**: [github.com/CodeShayk/DataFuse.Net](https://github.com/CodeShayk/DataFuse.Net)

0 commit comments

Comments
 (0)