|
22 | 22 | 8. [Advanced Features](#advanced-features) |
23 | 23 | 9. [Architecture](#architecture) |
24 | 24 | 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) |
26 | 27 |
|
27 | 28 | --- |
28 | 29 |
|
@@ -550,13 +551,14 @@ Request/response header management, JSON deserialization. |
550 | 551 |
|
551 | 552 | ### Compatibility |
552 | 553 |
|
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 | |
560 | 562 |
|
561 | 563 | --- |
562 | 564 |
|
@@ -1120,6 +1122,94 @@ services.AddHttpClient(); |
1120 | 1122 |
|
1121 | 1123 | --- |
1122 | 1124 |
|
| 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 | + |
1123 | 1213 | ## Getting Support |
1124 | 1214 |
|
1125 | 1215 | - **GitHub**: [github.com/CodeShayk/DataFuse.Net](https://github.com/CodeShayk/DataFuse.Net) |
|
0 commit comments