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

4.5 KiB

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.