|
20 | 20 | - `DevOps\Tasks\T-RNZ-TRAUER-002-Move-database-access-into-repository.md` |
21 | 21 | - `DevOps\Tasks\T-RNZ-TRAUER-003-Add-regression-tests-for-mapping-and-delegation.md` |
22 | 22 |
|
| 23 | +## Domain-Neutral DB Framework Extraction Snapshot |
| 24 | + |
| 25 | +- Target areas: |
| 26 | + - `GenFreeBase\Interfaces\DB` |
| 27 | + - `GenDBImplOLEDB` |
| 28 | +- Goal: extract reusable database abstractions and common infrastructure from the current `GenFree*` genealogy context into a domain-neutral database framework. |
| 29 | +- Architectural direction: |
| 30 | + - isolate provider-neutral contracts and core helpers in neutral projects |
| 31 | + - keep provider-specific facades separated by database type such as `OleDb`, `MySql`, `SqlServer`, and `dBase` |
| 32 | + - keep temporary compatibility paths for existing `GenFree*` consumers during migration |
| 33 | +- Initial findings: |
| 34 | + - several contracts are already generally reusable but still live under `GenFree` namespaces |
| 35 | + - some interfaces still depend on `GenFree.Data` and other solution-specific types |
| 36 | + - `GenDBImplOLEDB\Data.DB\MySqlStatementRenderer.cs` appears misplaced in the `OleDb` provider project |
| 37 | +- Planning artifacts: |
| 38 | + - `DevOps\Features\F-DB-FRAMEWORK-001-Extract-domain-neutral-database-framework.md` |
| 39 | + - `DevOps\BacklogItems\BI-DB-FRAMEWORK-001-Assess-and-plan-domain-neutral-db-framework-extraction.md` |
| 40 | + - `DevOps\Tasks\T-DB-FRAMEWORK-001-Inventory-current-db-abstractions-and-couplings.md` |
| 41 | + - `DevOps\Tasks\T-DB-FRAMEWORK-002-Define-target-neutral-db-project-structure.md` |
| 42 | + - `DevOps\Tasks\T-DB-FRAMEWORK-003-Plan-incremental-migration-and-compatibility-layer.md` |
| 43 | + - `DevOps\Tasks\T-DB-FRAMEWORK-004-Plan-test-strategy-for-db-framework-extraction.md` |
| 44 | +- Validation: |
| 45 | + - planning-only increment, no code build required yet |
| 46 | +- Detailed mapping artifact: |
| 47 | + - `DevOps\Tasks\T-DB-FRAMEWORK-005-Map-current-types-to-neutral-target-architecture.md` |
| 48 | +- Recommended first extraction slice: |
| 49 | + - create a neutral SQL-abstractions project first |
| 50 | + - leave legacy recordset-oriented contracts unchanged in the first increment |
| 51 | + - relocate the misplaced `MySqlStatementRenderer` out of the `OleDb` provider project |
| 52 | +- Implemented increment 1 changes: |
| 53 | + - added `DbCoreAbstractions` |
| 54 | + - added `DbProviderMySql` |
| 55 | + - added `DbProviderMySqlTests` |
| 56 | + - copied neutral SQL abstraction contracts into `DbCoreAbstractions` |
| 57 | + - moved `MySqlStatementRenderer` from `GenDBImplOLEDB` to `DbProviderMySql` |
| 58 | + - removed the misplaced renderer file from the `OleDb` project |
| 59 | +- Browser integration update: |
| 60 | + - `MSQBrowser` now references `DbCoreAbstractions` and `DbProviderMySql` |
| 61 | + - `MdbBrowser` now references `DbCoreAbstractions` and `GenDBImplOLEDB` |
| 62 | + - `MSQBrowser` no longer carries a direct `System.Data.OleDb` package reference only for schema collection naming |
| 63 | +- TFM compatibility update required by existing browser targets: |
| 64 | + - `DbCoreAbstractions` extended to `net462;net472;net481;net6.0;net7.0;net8.0;net9.0` |
| 65 | + - `DbProviderMySql` extended to `net462;net472;net481;net6.0;net7.0;net8.0;net9.0` |
| 66 | + - `GenDBImplOLEDB` extended to `net462;net472;net481;net8.0` |
| 67 | + - `GenFreeBase` extended to `net462;net472;net481;net6.0;net7.0;net8.0;net9.0` |
| 68 | +- Validation update: |
| 69 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MSQBrowser\MSQBrowser.csproj -nologo` succeeded |
| 70 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MdbBrowser\MdbBrowser.csproj -nologo` succeeded |
| 71 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\GenDBImplOLEDB\GenDBImplOLEDB.csproj -nologo` succeeded |
| 72 | +- Browser model refactoring update: |
| 73 | + - `MSQBrowser.Models.DBModel` now creates its connection through `Db.Provider.MySql.MySqlDbConnectionFactory` |
| 74 | + - `MdbBrowser.Models.DBModel` now creates its connection through `GenFree.Data.DB.OleDbConnectionFactory` |
| 75 | + - `DbProviderMySql` now exposes `MySqlDbConnectionFactory` |
| 76 | + - `GenDBImplOLEDB` now exposes `OleDbConnectionFactory` |
| 77 | + - `GenDBImplOLEDB` now also exposes an initial `OleDbStatementRenderer` |
| 78 | +- Current limitation: |
| 79 | + - browser model command/adaptor logic is still partly provider-specific and remains a later extraction step |
| 80 | +- Validation update: |
| 81 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\DbProviderMySql\DbProviderMySql.csproj -nologo` succeeded |
| 82 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MSQBrowser\MSQBrowser.csproj -nologo` succeeded |
| 83 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MdbBrowser\MdbBrowser.csproj -nologo` succeeded |
| 84 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MSQBrowserTests\MSQBrowserTests.csproj -nologo -v:minimal` succeeded |
| 85 | + - `dotnet build C:\Projekte\CSharp\Gen_FreeWin\MdbBrowserTests\MdbBrowserTests.csproj -nologo` succeeded |
| 86 | +- Unrelated broader-solution follow-up: |
| 87 | + - `WinAhnenNew\RnzTrauer` still expects a `MySqlStatementRenderer` in its own context and fails during full-solution build; not part of the browser scope |
| 88 | + |
23 | 89 | ## FBParser Pascal-to-CSharp Port Snapshot |
24 | 90 |
|
25 | 91 | - Target area: `FBParser\FBEntryParser.cs` |
|
0 commit comments