Skip to main content

Architecture Overview

FolderRewind is a WinUI 3-based Windows backup management tool. It adopts the MVVM architecture, organizes business logic through a static service layer, and supports plugin extensions and a remote command protocol.

Tech Stack

CategoryTechnologyVersion
Framework.NET + Windows App SDK.NET 10 / WinAppSDK 2.1.3
UIWinUI 3
MVVMCommunityToolkit.Mvvm8.4.2
Compression Engine7-Zip (7za.exe)Bundled
Cloud SyncrcloneUser-provided
System TrayH.NotifyIcon.WinUI2.4.1
SerializationSystem.Text.Json + Source Generator
Settings ControlsCommunityToolkit.WinUI.SettingsControls8.2.251219

Architecture Bird's-Eye View

graph TB
subgraph Views["Views"]
ShellPage
HomePage
SettingsPage
OtherPages["Other Pages & Dialogs"]
end

subgraph ViewModels["ViewModels"]
VM["Page ViewModels"]
end

subgraph Services["Services"]
ConfigService
BackupService
HistoryService
AutomationService
PluginService
OtherSvc["Navigation / Theme / Notification / ..."]
end

subgraph Models["Models"]
AppConfig
BackupConfig
ManagedFolder
OtherModel["HistoryItem / BackupMetadata / ..."]
end

subgraph Plugins["Plugin System"]
IFolderRewindPlugin
KnotLink
MineRewind["MineRewind Plugin"]
end

subgraph External["External Dependencies"]
SevenZip["7za.exe"]
Rclone["rclone"]
end

Views --> ViewModels
ViewModels --> Services
Services --> Models
Services --> Plugins
Plugins --> External
BackupService --> SevenZip
CloudSyncService["CloudSyncService"] --> Rclone

Documentation Navigation

DocumentContent
Directory StructureProject file tree and directory responsibilities
Architecture PatternsMVVM, static services, Shell navigation, and other core design patterns
Namespace ReferenceNamespace layout and key class quick reference
Service Layer Overview40+ services grouped by functional domain
Plugin SystemPlugin interface, lifecycle, and KnotLink protocol
Data ModelsAppConfig hierarchy and serialization strategy
Views & NavigationPage list, dialogs, and navigation flow