The Windows App SDK (formerly Project Reunion) is a Microsoft platform SDK for building modern Windows desktop applications. It provides a unified set of WinRT APIs and runtime components that bridge Win32 and UWP development, enabling features like app lifecycle management (single-instance, file/protocol activation), dynamic package dependencies (resolving framework packages at runtime), rich notifications (toast, push, badge), resource management via MRT Core (PRI files with qualifier-based selection), deployment APIs (package sets, validation), environment variable management, OAuth 2.0 authentication, and interop wrappers for storage pickers and camera capture. The architecture is modular: each feature area is implemented as a separate C++/WinRT component (DLL) that can be consumed individually via NuGet packages. The SDK supports both packaged (MSIX) and unpackaged (self-contained) apps, with a bootstrap DLL that initializes the runtime and hooks into the Windows package graph via Detours. Key entry points include MddBootstrapInitialize2 for runtime initialization, the WindowsAppRuntime DLL for COM class factories, and individual component APIs like AppNotificationManager, PushNotificationManager, and PackageDependency. External dependencies include the Windows SDK, C++/WinRT projections, the Windows Implementation Libraries (WIL), and Microsoft Detours for API interception. Data flows involve inter-process communication through shared memory (for activation redirection), named pipes (for OAuth callbacks), and COM out-of-process servers (for push notification long-running tasks). The codebase is heavily instrumented with TraceLogging telemetry and uses feature flags (TerminalVelocity) to gate experimental APIs.
SpanFinder is a fully-featured Windows file explorer replacement built with WinUI 3 and .NET 8, implementing the macOS Finder Miller Columns paradigm. The application supports multiple view modes (Miller Columns, Details, List, Icons), multi-tab with tear-off, split pane, Quick Look preview, batch rename, archive handling (ZIP, RAR, 7z via native OtterZip engine), remote file access (FTP/SFTP/SMB), Git integration, cloud sync badges, and a file shelf for drag-and-drop staging. The architecture follows MVVM with dependency injection, extensive use of Win32 P/Invoke and COM interop for shell integration, and a separate thumbnail worker process for crash isolation. The codebase is well-organized into Services, Models, ViewModels, and Helpers, with over 150 unit tests and 40+ UI automation tests. However, it exhibits some mixed abstraction layers and a few large partial classes (MainWindow, MainViewModel), and many comments reference specific bug fixes, indicating ongoing refinement. The repository is actively maintained with recent commits, a single open issue, and regular versioned releases (v2.0.7).
The microsoft/WindowsAppSDK-Samples repository is a comprehensive suite of reference applications demonstrating the Windows App SDK (WinAppSDK) ecosystem. It is not a single monolithic application but a collection of independent projects categorized by feature domain, including App Lifecycle, Composition, Input, Notifications, AI/ML, and Islands. The codebase serves as the primary learning resource for developers building Windows desktop applications using WinUI 3, WPF, WinForms, and native C++. It explicitly covers both packaged (MSIX) and unpackaged deployment models, with distinct initialization logic for each (e.g., Bootstrap initialization for unpackaged apps). The repository also includes Visual Studio project templates to scaffold new applications. Architecturally, the repository is organized as a gallery of samples where each project is self-contained but shares common utilities in the SamplesCommon directory. The code demonstrates high craftsmanship in complex areas like Composition animations, Direct2D interop, and ONNX Runtime integration. However, the codebase exhibits significant duplication of boilerplate logic (e.g., MainWindow initialization, Navigation patterns) across dozens of sample projects. Additionally, many C++ samples rely on legacy NuGet management (packages.config) rather than modern PackageReference, indicating a technical debt in the C++ tooling alignment. The repository is actively maintained with recent commits and CI pipelines for various sample categories. It relies heavily on specific Windows App SDK versions and preview APIs (e.g., ElementCompositionPreview), which introduces a risk of drift as the SDK evolves. The presence of both C++/WinRT and raw Win32/C++ samples highlights a transition period in the Windows development stack, requiring developers to navigate mixed paradigms.