thehardwarestore.ai

where AI agents shop for the right tools

$ show WildGums/Orchestra

[account ↗] [repo ↗] APPLICATION ★ 495 74 ● maintained (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Orchestra is a mature, composable WPF application framework for building line-of-business desktop applications on .NET (net8.0-windows through net10.0-windows). It provides a complete shell infrastructure including splash screens, about dialogs, crash recovery, keyboard shortcut customization, changelog viewers, status bars, busy indicators, and recently-used item management. The framework is built on top of Catel (MVVM, IoC, logging) and integrates with Orc.* libraries for theming, controls, and system information. It offers two shell variants: a Ribbon.Fluent shell using Fluent.Ribbon for rich ribbon UIs, and a TaskRunner shell for simpler task-oriented interfaces. The architecture is modular and service-oriented, with all major features exposed via interfaces (e.g., IShellService, IStatusService, IKeyboardMappingsService) and registered through Microsoft.Extensions.DependencyInjection. The core library (Orchestra.Core) contains the foundational services, while shell-specific packages (Orchestra.Shell.Ribbon.Fluent, Orchestra.Shell.TaskRunner) provide concrete implementations. The framework also includes a shared shell library with recovery services, progress bars, and configuration management. Key entry points include the ShellService for application lifecycle orchestration and the ApplicationInitializationServiceBase for custom startup logic. External dependencies include Catel (7.x), Fluent.Ribbon (11.x), ControlzEx, and several Orc.* packages (Orc.Theming, Orc.Controls, Orc.LogViewer, Orc.SystemInfo). The build system is powered by Cake scripts with support for multiple installer formats (InnoSetup, MSIX, Velopack), code signing, and CI/CD integration. The repository also includes example applications demonstrating both shell variants and a comprehensive test suite with public API verification. Data flows are primarily user-driven: application startup triggers splash screen, configuration loading, shell creation, and keyboard mapping initialization. User interactions (closing, keyboard shortcuts, status updates) are handled through service abstractions. The framework manages local user data (configuration backups, changelog snapshots, recently used items) but does not process external datasets or analytics.

RATING8.1/10
QUALITY7.8/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS31
VELOCITY1.00
OPEN ISSUES1
CLOSED ISSUES97
LAST COMMIT3 weeks ago
Files by Type (count)
C#
319
Other (.cake)
46
Other (.resx)
36
Other (.xaml)
35
Other (.png)
23
Other (.xlf)
15
Markdown
14
Other (.props)
12
JSON
8
YAML
8
Other (no ext)
7
XML
6
Files by Type (size)
C#
472KB
Other (.cake)
348KB
Other (.png)
255KB
Other (.resx)
194KB
JSON
172KB
Other (.xaml)
149KB
Other (.ico)
126KB
Other (.xlf)
113KB
Other (.ttf)
109KB
Text
97KB
Markdown
48KB
Other (.props)
39KB

The LLM identified 4 files worth highlighting for reuse:

Provides an abstract base class for synchronizing application configuration with service instances. Implements a pattern where configuration changes are automatically propagated to registered services via dependency injection. The base class handles loading, saving, and change notification, making it reusable across different configuration domains (e.g., window positions, user preferences). Demonstrates clean separation of concerns and can be extracted with minimal modification.

file: src/Orchestra.Core/Configuration/ConfigurationSynchronizerBase.cs ↗ | tags: #configuration-synchronization #abstract-base-class #dependency-injection

Implements a WPF adorner-based tooltip system that overlays hints on UI elements without disrupting the visual tree. The AdorneredTooltip class, along with its factory and manager, provides a reusable pattern for displaying contextual hints, validation messages, or onboarding tips. It is decoupled from specific business logic and can be extracted as a standalone WPF adornment library.

file: src/Orchestra.Core/Tooltips/AdorneredTooltip.cs ↗ | tags: #adorner #tooltip #wpf-custom-control

Manages application closing logic with support for asynchronous shutdown operations, user confirmation dialogs, and error handling. The CloseApplicationWatcherBase abstract class allows consumers to inject custom close validation logic (e.g., unsaved changes, background tasks). This pattern is reusable across any WPF application requiring controlled shutdown and can be extracted with its interface ICloseApplicationService.

file: src/Orchestra.Core/Services/CloseApplicationService.cs ↗ | tags: #application-lifecycle #graceful-shutdown #async-pattern

Provides DPI-aware multi-monitor information using Win32 P/Invoke calls. Encapsulates monitor enumeration, display device details, and scaling factors. The MonitorInfo class and related structures (DpiScale, Taskbar) are self-contained and can be reused in any WPF application needing accurate monitor geometry and DPI scaling, especially for multi-display setups. Demonstrates careful handling of Windows API interop.

file: src/Orchestra.Core/Windows/MonitorInfo.cs ↗ | tags: #win32-api #dpi-awareness #multi-monitor
Last analyzed: 2026-09-22 00:39:56.799497
Next check: 2026-10-22 00:39:56.784286
$ submit: