At Build 2020, a new member of the Microsoft development toolkit, Project Reunion, was unveiled. This new platform looks to bring together the Win32, UWP, WPF and Windows Forms APIs, breaking them out from specific versions of the Windows 10 operating system to expand what releases of the operating system and types of devices developers can target with their apps and software.
Previously, Microsoft’s APIs were tied to specific releases of Windows 10 and therefore limited a developer’s ability to target a broad range of users.
Project Reunion is in its early stages of development, but the one thing Microsoft has said for sure is that Project Reunion is not a new app model. Rather, Project Reunion provides a set of libraries and other content that can be added to a developer’s project and its specific app model (Win32, UWP, WPF and Windows Forms). The process of bringing all these development surfaces together, which will also include some new APIs in addition to existing ones, is called polyfilling.
Project Reunion filling in the gaps via the polyfill technique will be done automatically so that all these APIs work across all supported versions of Windows rather than one specific release.
Visually, this is what the process of incorporating Project Reunion APIs looks like:
Those outlined APIs under the Microsoft Project Reunion header are intended to adapt and translate the various Windows App Library APIs, then incorporate that functionality into the Windows operating system and apps no matter if they require desktop or UWP APIs.
Microsoft has identified four key principles around their approach to Project Reunion as part of the Microsoft Development Kit:
- Compatible: Making all apps functional and full-featured across all supported versions of Windows, regardless of the app origins as Win32, Packaged or UWP. Under Project Reunion, all these APIs will be categorized as either New, Converged or API Subsets.
- Agile: Since it is no longer tied to operating system releases, Project Reunion’s updates, including previews, can be released outside of the Windows release schedule. As new capabilities are added to Project Reunion, developers can add those to their apps.
- Open: Project Reunion will be built using GitHub as a development collaboration platform. Developers are encouraged to participate in the discussion around the project’s development, contribute code and add pull requests to address bugs and other issues.
The bottom line on Project Reunion: Developers can pick and choose what aspects of the project are incorporated into apps. Whatever elements are used, there should not be any need to rewrite existing code into a new language or do a lot of work to connect all the dots between functionality and features.
Based on the Project Reunion roadmap, Microsoft is already looking adding the following to the Project Reunion:
- Edge/Chromium WebView2 for web-based elements
- Modern Lifecycle Helpers to help with power management, registering for reboots after system restarts, and reducing restarts of the app after updates.
- Startup Tasks to ensure app does not consume excess resources but be ready for quick use after connecting.
- Update Scan Integration to keep apps updated during normal system maintenance tasks.
- Access to User Resources like the clipboard, inter-process communication exchanges, and Windows Shell Namespace with user consent.
- Modern Resource Tooling: ability to use ResX/ResW in Win32 applications rather than Multilingual User Interfaces.
Microsoft has a long history of introducing new technologies to its development toolkit over the years with varying levels of support in the long term. It would be understandable to see some hesitation at the thought of yet another API translator for desktop and UWP apps. However, if this toolset reaches its potential and retains consistent support from Microsoft, the line between Win32 and UWP apps could become a moot point for both the developer and the end user.