Extract gclo.ViewModels library — no business logic in the UI project #3

Closed
opened 2026-07-03 13:58:56 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-03 13:58:56 +00:00 (Migrated from github.com)

Owner rule: all business logic lives in shared libraries; the WinUI project keeps only XAML, dialogs, pickers, brushes, and update plumbing.

  • New gclo.ViewModels classlib (net10.0; refs gclo.Engine + CommunityToolkit.Mvvm — UI-framework-free).
  • Move MainViewModel, RepoItemViewModel, AppSettings persistence (the one WinUI theme-mapping method stays in the app).
  • Add a progress-factory seam so view models are unit-testable (Progress capture makes tests racy otherwise).
  • Add view-model unit tests: command gating, progress aggregation, debounced org lookup + cancellation, error surfacing.
  • Update slnx, README project layout.

Domain logic already lives in gclo.Engine (published to NuGet by the release pipeline); this closes the remaining gap.

Owner rule: all business logic lives in shared libraries; the WinUI project keeps only XAML, dialogs, pickers, brushes, and update plumbing. - New `gclo.ViewModels` classlib (net10.0; refs gclo.Engine + CommunityToolkit.Mvvm — UI-framework-free). - Move `MainViewModel`, `RepoItemViewModel`, `AppSettings` persistence (the one WinUI theme-mapping method stays in the app). - Add a progress-factory seam so view models are unit-testable (Progress<T> capture makes tests racy otherwise). - Add view-model unit tests: command gating, progress aggregation, debounced org lookup + cancellation, error surfacing. - Update slnx, README project layout. Domain logic already lives in `gclo.Engine` (published to NuGet by the release pipeline); this closes the remaining gap.
KofTwentyTwo commented 2026-07-03 15:44:50 +00:00 (Migrated from github.com)

Shipped: gclo.ViewModels library extracted (view models + settings persistence, UI-framework-free, injectable seams) with view-model test coverage. UI project contains only XAML/dialogs/pickers/update plumbing.

Shipped: gclo.ViewModels library extracted (view models + settings persistence, UI-framework-free, injectable seams) with view-model test coverage. UI project contains only XAML/dialogs/pickers/update plumbing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/gclo#3