Project Reunion marches toward unified Windows SDK

Microsoft’s plan to decouple the Windows developer platform from the OS has reached its first major milestone with the 0.5 release of the Project Reunion SDK. It’s the first release to mix in the WinUI 3.0 UI controls, with Microsoft describing it as “the first round of validating our work with customers prior to release.” It’s also the first release that lets you publish MSIX-packaged desktop apps to the Windows Store.

Although the 0.5 release has production support for a subset of its planned APIs and just one of its intended development targets, Microsoft is encouraging developers to get started porting apps to the new platform. Project Reunion won’t be the only way to get access to Windows APIs; the Windows SDK isn’t going away and will continue to evolve with Windows. Rather, Project Reunion is a way to find a common platform for access to that SDK and to the Windows UI layer. By providing that common layer, Project Reunion should make it possible to bring older code forward to take advantage of Windows 10’s security features along with access to modern hardware and services.

Another aspect of Project Reunion is support for as many different ways of building code for Windows as possible. APIs will be available in WinRT for .NET applications and as native C for C++/Win32. Currently, the available builds include C# for .NET 5 and C++ with WinRT. Microsoft is looking to the future and is offering a Rust/WinRT build for developers experimenting with the memory-safe language. Significant investment is going into Rust, and early support for Project Reunion will allow you to quickly get up to speed with modern development practices in a new language.

Project Reunion is hosted on GitHub, with installation instructions and links to documentation, as well as community access to source code.

Understanding MRTCore and DWriteCore

Part of Project Reunion is a new version of the Windows Resource Management System, MRTCore. This indexes all the resources in a package at build time, adding the index to your app’s package. These indexes give you programmatic access to resources, with a loader class for access to string resources and a ResourceManager class for deeper information about application resources. You can then use these tools to manage access to files bundled with your code, including images and other media resources.

One use for MRTCore is to keep different versions of application resources for different target devices, for example detecting screen resolution when an application runs and then loading the appropriate resolution icons and images so that users get the best match for their PC. Users with high DPI displays will be able to get an appropriate user interface without unnecessary scaling.

Copyright © 2021 IDG Communications, Inc.

Source link