From fcb45b919fdd61b9587a4a149ffb1fe992d1dbcf Mon Sep 17 00:00:00 2001 From: Andy Howard Date: Fri, 11 Sep 2026 18:32:24 +0100 Subject: [PATCH] Remove .Net 8 targets --- SacsCoreUnitTests/SacsCoreUnitTests.csproj | 2 +- SacsCoreWeb/SacsCoreWeb.csproj | 2 +- SacsMobileMaui/SacsMobileMaui.csproj | 2 +- SacsMobileMaui/docs/component-reviews.md | 2 +- SacsMobileMaui/docs/topics.md | 2 +- SacsStandardAccounts/SacsStandardAccounts.csproj | 2 +- SacsStandardBase/SacsStandardBase.csproj | 2 +- SacsStandardDbas/SacsStandardDbas.csproj | 2 +- SacsStandardProc/SacsStandardProc.csproj | 2 +- docs/component-reviews.md | 4 ++-- docs/topics.md | 3 ++- 11 files changed, 13 insertions(+), 12 deletions(-) diff --git a/SacsCoreUnitTests/SacsCoreUnitTests.csproj b/SacsCoreUnitTests/SacsCoreUnitTests.csproj index a84919e..dcce6c7 100644 --- a/SacsCoreUnitTests/SacsCoreUnitTests.csproj +++ b/SacsCoreUnitTests/SacsCoreUnitTests.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 false diff --git a/SacsCoreWeb/SacsCoreWeb.csproj b/SacsCoreWeb/SacsCoreWeb.csproj index 6325a3f..36b28d7 100644 --- a/SacsCoreWeb/SacsCoreWeb.csproj +++ b/SacsCoreWeb/SacsCoreWeb.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 Sacs diff --git a/SacsMobileMaui/SacsMobileMaui.csproj b/SacsMobileMaui/SacsMobileMaui.csproj index d0a02d0..f7bd8d7 100644 --- a/SacsMobileMaui/SacsMobileMaui.csproj +++ b/SacsMobileMaui/SacsMobileMaui.csproj @@ -4,7 +4,7 @@ net10.0-android;net10.0-ios;net10.0-maccatalyst $(TargetFrameworks);net10.0-windows10.0.19041.0 - + true true enable diff --git a/SacsMobileMaui/docs/component-reviews.md b/SacsMobileMaui/docs/component-reviews.md index 609452b..42201ab 100644 --- a/SacsMobileMaui/docs/component-reviews.md +++ b/SacsMobileMaui/docs/component-reviews.md @@ -11,4 +11,4 @@ Last updated: 2026-09-11 | Component | Scope | Status | Date reviewed | Next steps | Notes | |---|---|---|---|---|---| -| `SacsMobileMaui` | Project | .NET 10 migration complete; follow-up required | 2026-09-11 | Migrate Sandtrap and Sandalwood, validate Apple targets on a Mac, then address the compatibility APIs and focused defects recorded in `topics.md`. | The project targets .NET 10 with MAUI 10.0.20. Windows and Android Debug builds pass with zero errors. Nullable picker changes are handled while preserving the controls' existing non-null public API. Compatibility API, UI-thread synchronization, handler-cast, `AllowInvalid`, and resource-stream work remains tracked. | +| `SacsMobileMaui` | Project | .NET 10 migration complete; follow-up required | 2026-09-11 | Validate Apple targets on a Mac, then address the compatibility APIs and focused defects recorded in `topics.md`. | The project and both active consumers target .NET 10 with MAUI 10.0.20. Windows runtime smoke tests pass, and Windows and Android Debug builds complete with zero errors against Common’s final .NET 10-only libraries. Compatibility API, UI-thread synchronization, handler-cast, `AllowInvalid`, and resource-stream work remains tracked. | diff --git a/SacsMobileMaui/docs/topics.md b/SacsMobileMaui/docs/topics.md index 1939af5..7ad9146 100644 --- a/SacsMobileMaui/docs/topics.md +++ b/SacsMobileMaui/docs/topics.md @@ -13,7 +13,6 @@ Last updated: 2026-09-11 | Priority | Topic | Date noted | Next step | Notes | |---|---|---|---|---| -| P1 | Upgrade Sandtrap and Sandalwood to .NET MAUI 10 | 2026-09-10 | Retarget and align each consumer with `SacsMobileMaui`, then build and smoke-test their supported platforms. | The shared library now targets .NET 10 and MAUI 10.0.20. Sandalwood and Sandtrap still require coordinated consumer migrations before Common can remove its temporary .NET 8 targets. | | P2 | Replace obsolete MAUI compatibility APIs | 2026-09-10 | Replace compatibility layouts, `Frame`, `MainPage`, synchronous popup calls, and deprecated expansion options; then remove `Microsoft.Maui.Controls.Compatibility`. | The .NET 10 Windows and Android builds succeed, but retain compatibility references and report the existing API-obsolescence warnings. | | P1 | Make `SamThreadUtil` and form dialogs genuinely asynchronous and deadlock-safe | 2026-09-10 | Replace synchronous UI-thread bridges with `Task`-returning APIs, update the Sandtrap caller, and add focused tests. | The void `InvokeOnMainThreadSync` overload never waits; the generic overload and `DisplayConfirmSync` block on `Task.Result` and can deadlock on the UI thread. `DisplayAlertSync` also passes an async lambda to `Action`, producing `async void` behavior. | | P2 | Correct MAUI native handler type checks | 2026-09-10 | Use `SamEditor` in editor mappings and `SamPicker` in picker mappings; validate each platform-specific option. | Several editor and every picker option currently cast to the wrong custom control type, so configured native styling is silently skipped. | @@ -43,3 +42,4 @@ Last updated: 2026-09-11 | Establish authoritative source control for Sandtrap and Sandalwood | 2026-09-10 | 2026-09-10 | 2026-09-10 | Separate repositories were initialized, given baseline guidance and tracking files, committed, and pushed to their remotes. | | Repair the MAUI workload and validate local targets | 2026-09-10 | 2026-09-11 | 2026-09-11 | SDK 10.0.401 reports coherent .NET 10 Android, iOS, Mac Catalyst, and MAUI Windows workloads. The upgraded shared project restores and builds successfully for Windows and Android; Apple builds still require compatible Mac/Xcode validation. | | Upgrade `SacsMobileMaui` to .NET MAUI 10 | 2026-09-10 | 2026-09-11 | 2026-09-11 | Retargeted Android, iOS, Mac Catalyst, and Windows to .NET 10; aligned MAUI packages to 10.0.20; and adapted date/time controls to MAUI 10 nullable picker values. Windows and Android Debug builds complete with zero errors. | +| Upgrade Sandtrap and Sandalwood to .NET MAUI 10 | 2026-09-10 | 2026-09-11 | 2026-09-11 | Both applications now target .NET 10 with MAUI 10.0.20. Windows runtime smoke tests pass, and Windows and Android Debug builds complete with zero errors against the final Common .NET 10-only libraries. Apple validation remains separately tracked in each application repository. | diff --git a/SacsStandardAccounts/SacsStandardAccounts.csproj b/SacsStandardAccounts/SacsStandardAccounts.csproj index 3db7cdf..3d15ea4 100644 --- a/SacsStandardAccounts/SacsStandardAccounts.csproj +++ b/SacsStandardAccounts/SacsStandardAccounts.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 Sarand.Net.Standard diff --git a/SacsStandardBase/SacsStandardBase.csproj b/SacsStandardBase/SacsStandardBase.csproj index e0e990f..7a1e0cb 100644 --- a/SacsStandardBase/SacsStandardBase.csproj +++ b/SacsStandardBase/SacsStandardBase.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 Sarand.Net.Standard diff --git a/SacsStandardDbas/SacsStandardDbas.csproj b/SacsStandardDbas/SacsStandardDbas.csproj index 89a2123..ee5ff22 100644 --- a/SacsStandardDbas/SacsStandardDbas.csproj +++ b/SacsStandardDbas/SacsStandardDbas.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 Sarand.Net.Standard diff --git a/SacsStandardProc/SacsStandardProc.csproj b/SacsStandardProc/SacsStandardProc.csproj index 009cf2f..9b9c5bc 100644 --- a/SacsStandardProc/SacsStandardProc.csproj +++ b/SacsStandardProc/SacsStandardProc.csproj @@ -1,7 +1,7 @@ - net8.0;net10.0 + net10.0 Sarand.Net.Standard diff --git a/docs/component-reviews.md b/docs/component-reviews.md index fccfe0b..381b9fa 100644 --- a/docs/component-reviews.md +++ b/docs/component-reviews.md @@ -11,9 +11,9 @@ Last updated: 2026-09-11 | Component | Scope | Status | Date reviewed | Next steps | Notes | |---|---|---|---|---|---| -| `SaCommonVS.sln` | .NET 8/.NET 10 migration build and tests | Multi-target stage complete; passing with warnings | 2026-09-10 | Address the dependency and .NET 10 warnings, then migrate BusinessMgr against the validated Common targets. | Five non-MAUI libraries and `SacsCoreUnitTests` target `net8.0;net10.0`. The supported solution builds with no errors, and 94 of 94 tests pass on each target. BusinessMgr still builds successfully against the .NET 8 outputs. MAUI remains on .NET 9 and is tracked in its project-specific docs. | +| `SaCommonVS.sln` | .NET 10 migration build and tests | Migration complete; passing with warnings | 2026-09-11 | Address the separately tracked dependency, security, and .NET 10 warnings. | All supported projects target .NET 10 only. The complete solution builds with zero errors, and 94 of 94 tests pass. BusinessMgr, Sandtrap, and Sandalwood rebuild successfully against the final Common targets. Xamarin remains isolated and unchanged. | | `SacsMobileXamarin` | Migration disposition | Isolated; retained for reference | 2026-09-10 | Keep outside the supported build unless a separately scoped resurrection or migration is approved. | Source is unchanged and available through `SaCommonVS.LegacyXamarin.sln`; see `docs/legacy-xamarin.md`. | -| [`SacsMobileMaui`](../SacsMobileMaui/docs/component-reviews.md) | Project | .NET 10 migration complete; tracked in project docs | 2026-09-11 | Migrate Sandtrap and Sandalwood, validate Apple targets on a Mac, and continue API cleanup in the project tracker. | The shared project now targets .NET 10 with MAUI 10.0.20; Windows and Android Debug builds pass with zero errors. | +| [`SacsMobileMaui`](../SacsMobileMaui/docs/component-reviews.md) | Project | .NET 10 migration complete; tracked in project docs | 2026-09-11 | Validate Apple targets on a Mac and continue API cleanup in the project tracker. | The shared project and both active mobile consumers target .NET 10. Windows runtime smoke tests pass, and Windows and Android Debug builds complete with zero errors. | | `SacsStandardBase/Base/Procs/SaProcess_Base.cs` | Class | In progress | 2026-09-09 | Complete the Process Base actions recorded in `topics.md`; review derived processes separately for cooperative polling. | Lifecycle state ownership and cancellation lock ordering were changed. Five focused tests pass. Remaining concerns include mixed sync/async execution, durable cancellation outcome, cancellation exception handling, disposal, and status synchronization. | | `SacsStandardBase/Base/Email/SaEmailConsole.cs` | Class | Reviewed; action required | 2026-09-08 | Restore SMTP certificate validation and require the configured TLS mode. Add invalid-certificate and unavailable-TLS tests. | The current SMTP client accepts every server certificate. | | `SacsStandardBase/Base/Helpers/SacsEncryptionHelper.cs` and `SacsStandardBase/Base/Data/SacsAesIvCrypter.cs` | Classes | Reviewed; action required | 2026-09-08 | Design a versioned authenticated-encryption format with legacy migration and tamper tests. | Current CBC encryption is unauthenticated; password-based key derivation uses a fixed salt and low iteration count. | diff --git a/docs/topics.md b/docs/topics.md index 5f8f89f..7214864 100644 --- a/docs/topics.md +++ b/docs/topics.md @@ -7,7 +7,7 @@ table td { } -Last updated: 2026-09-10 +Last updated: 2026-09-11 ## Prioritised Topics to Be Actioned @@ -52,3 +52,4 @@ Last updated: 2026-09-10 | Pin the Common .NET 10 SDK | 2026-09-10 | 2026-09-10 | 2026-09-10 | Added `global.json` for SDK 10.0.401 with `latestPatch` roll-forward and prerelease SDKs disabled. | | Isolate `SacsMobileXamarin` from the supported Common build | 2026-09-10 | 2026-09-10 | 2026-09-10 | Removed the project from `SaCommonVS.sln` while retaining all source. Added `SaCommonVS.LegacyXamarin.sln` and `docs/legacy-xamarin.md` for reference-only access. The project is outside the supported .NET 10 migration scope. | | Prepare Common libraries for the coordinated .NET 10 migration | 2026-09-10 | 2026-09-10 | 2026-09-10 | `SacsStandardBase`, `SacsStandardDbas`, `SacsStandardProc`, `SacsCoreWeb`, `SacsStandardAccounts`, and `SacsCoreUnitTests` now target `net8.0;net10.0`. The supported solution builds both targets with no errors; 94 of 94 tests pass on each target. BusinessMgr continues to build successfully on .NET 8 against the temporary compatible outputs. New .NET 10 warnings are tracked separately. | +| Complete the Common .NET 10 migration | 2026-09-10 | 2026-09-11 | 2026-09-11 | Removed the temporary .NET 8 targets from all supported non-MAUI libraries and tests. The full supported solution restores and builds with zero errors, and 94 of 94 tests pass on .NET 10. BusinessMgr rebuilds successfully with 8 of 8 Control and 13 of 13 Portal tests passing; Sandtrap and Sandalwood build successfully for Windows and Android. The isolated Xamarin reference project remains unchanged on .NET 8. |