Files
Common-VS2019/docs/component-reviews.md
T
2026-09-14 18:31:46 +01:00

5.4 KiB

Component Review Register

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

Last updated: 2026-09-14

Component Scope Status Date reviewed Next steps Notes
SaCommonVS.sln .NET 10 migration build and tests Migration complete; passing with warnings 2026-09-14 Continue the staged package review, beginning with framework-aligned BusinessMgr packages. All supported projects target .NET 10 only. The low-risk package patches and removal of the redundant Registry reference pass the complete validation. The solution builds with zero errors and all 126 tests pass; BusinessMgr builds with 11 Control and 13 Portal tests passing. Xamarin remains isolated and unchanged.
SacsStandardBase/Base/Utils/ImageUtils.cs ImageSharp wrapper Covered for package upgrades 2026-09-14 Extend the suite when adding formats or changing resize policy. Five in-memory tests cover PNG and JPEG metadata, invalid and truncated input, SVG recognition, format-preserving encoding, proportional landscape and portrait resizing, no-upscale behavior, and invalid constraints.
SacsStandardBase JSON utilities and SysId converter Newtonsoft.Json integration Covered for package upgrades 2026-09-14 Retain the suite for future Newtonsoft.Json updates. Six tests cover objects, arrays, nulls, serializer settings, valid and invalid parsing paths, dynamic access, SysId conversion, independent deep copies, nested collections, and constructor-value replacement.
SacsStandardDbas provider and parameter creation Microsoft.Data.SqlClient and registry integration Initial package-upgrade coverage complete 2026-09-14 Expand into configured database integration tests before the planned SqlClient major upgrade. Four database-free tests cover SQL versus forced ODBC connection selection, connection strings, values and nulls, explicit integer and binary types, SQL DateTime2, ODBC DateTime, precision normalization, and sentinel dates. The redundant Registry 5.0.0 package was removed; .NET 10 supplies the APIs and NU1510 is gone.
SacsCoreUnitTests Test SDK, MSTest, and coverage tooling Current; coverage verified 2026-09-14 Preserve the analyzer-clean build and explicit coverage validation during future test-tool upgrades. Uses Microsoft.NET.Test.Sdk 18.10.0, MSTest 4.4.0, and coverlet collector 10.0.1. The MSTest 4 migration corrected 39 reversed expected/actual assertions; all 126 tests pass without MSTest analyzer warnings, and the optional validation coverage mode verifies a non-empty Cobertura report.
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 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 Dependency upgrade complete; security action still required 2026-09-12 Separately restore SMTP certificate validation and require the configured TLS mode. MailKit and MimeKit 4.17.0 pass the Common and downstream validation suites without vulnerability warnings. Message construction is covered for addressing, bodies, attachments, content IDs, default filenames, and tags. The current SMTP client still accepts every server certificate.
SacsStandardProc/Proc/Excel/SaMsSpreadsheet_POI.cs Class Dependency upgrade complete 2026-09-12 Retain the focused spreadsheet suite for future NPOI updates; do not adopt NPOI 2.8.0 without an explicit licensing decision. NPOI 2.7.6 is paired with an explicit System.Security.Cryptography.Xml 10.0.12 reference and NuGet reports no vulnerable packages for SacsStandardProc. Nullable date and indexed-colour API changes were adapted. Ten focused tests and all 111 Common tests pass; BusinessMgr builds and its 21 tests pass.
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.
eng/validate.ps1 Repository validation Complete; passing 2026-09-12 Use as the standard validation entry point and extend it when repository-wide checks change. Builds serially, runs 10 focused and 111 full tests, audits the NPOI-owning project, verifies changed-file line endings and diffs, then invokes BusinessMgr validation.