Files
Common-VS2019/SacsMobileMaui/docs/topics.md
T
2026-09-10 15:55:29 +01:00

4.4 KiB

SacsMobileMaui Topic Tracker

<style> table th, table td { vertical-align: top; } </style>

Last updated: 2026-09-10

Prioritised Topics to Be Actioned

Priority Topic Date noted Next step Notes
P1 Repair the MAUI workload and capture the pre-migration mobile baseline 2026-09-10 Repair the inconsistent Android workload manifests, select the current SDK explicitly, then restore/build Windows and Android and record Apple-platform validation requirements. Depends on a usable MAUI toolchain and authoritative consumer source control. The current workload reports a missing microsoft-net-runtime-android-net9 extension; Apple builds require a compatible Mac/Xcode environment.
P1 Upgrade SacsMobileMaui and its consumers from unsupported .NET MAUI 8/9 to .NET MAUI 10 2026-09-10 Replace MAUI 9 compatibility APIs, align and validate consumer projects, then retarget to net10.0 and the current MAUI 10 servicing release. MAUI 9.0.120 is the final MAUI 9 patch, but MAUI 9 support ended on 2026-05-12. Sandalwood and Sandtrap still target MAUI 8 while referencing the net9.0 shared project. The shared library also uses removed/deprecated compatibility layouts, Frame, MainPage, and popup APIs.
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
P1 Establish authoritative source control for Sandtrap and Sandalwood 2026-09-10 2026-09-10 Review each initial import, configure its intended remote, and create the baseline commit. Separate Git repositories now exist at PippinApps/Repositories/Sandtrap and PippinApps/Repositories/Sandalwood; baseline guidance and tracking files have been added. Consumer migration work should begin only after their initial imports are safely committed.

Completed Topics

Topic Date noted Date started Date completed Outcome