Files
Common-VS2019/SacsMobileMaui/docs/topics.md
T
2026-09-11 18:32:24 +01:00

46 lines
4.5 KiB
Markdown

# SacsMobileMaui Topic Tracker
<style>
table th,
table td {
vertical-align: top;
}
</style>
Last updated: 2026-09-11
## Prioritised Topics to Be Actioned
| Priority | Topic | Date noted | Next step | Notes |
|---|---|---|---|---|
| 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. |
| P2 | Fix `SamDatePicker.AllowInvalid` state transition | 2026-09-10 | Change the assignment in the equality guard, verify both transitions, and add tests for display and reset behavior. | Setting `AllowInvalid` to `true` returns before refreshing the control; the guard uses `allowInvalidDate = value`. |
| P3 | Remove unused resource-stream enumeration | 2026-09-10 | Return `null` immediately after a failed named lookup or implement an intentional lookup strategy that disposes rejected streams. | `GetResourceStream` opens every manifest resource, discards each stream, and returns `null`. |
## .NET 10 Dependencies and Sequence
| Work item | Depends on | Unblocks |
|---|---|---|
| Establish Sandtrap and Sandalwood source control | Confirmation of the authoritative repositories or tracking workflow | Safe coordinated edits and review of consumer migration changes |
| Repair MAUI workloads and capture baseline | Consumer source-control decision; supported current SDK/workloads | Reliable distinction between environment, existing-source, and migration failures |
| Replace compatibility and obsolete APIs | Baseline evidence | Removal of `Microsoft.Maui.Controls.Compatibility` and clean MAUI 10 compilation |
| Retarget `SacsMobileMaui`, Sandtrap, and Sandalwood together | Compatibility cleanup; aligned package plan; tracked consumer workspaces | Windows and Android MAUI 10 validation |
| Validate Apple targets | Retargeted projects; compatible Mac and Xcode | Completion of the cross-platform migration |
| Address remaining behavioral defects | Stable MAUI 10 baseline; UI-thread defect may move earlier if it blocks testing | Reliable application behavior and focused regression tests |
## In-Progress Topics
| Priority | Topic | Date noted | Date started | Next step | Notes |
|---|---|---|---|---|---|
## Completed Topics
| Topic | Date noted | Date started | Date completed | Outcome |
|---|---|---|---|---|
| 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. |