One of the challenges Microsoft faces with Windows 10 is due to the company’s own massive success in building their large library of traditional Win32 applications. This presents the company with a Catch-22 situation: developers are reluctant to write Windows 10 specific apps without a the possibility of a vast market of potential buyers and users are less likely to incur the hassle of upgrading to Windows 10 without being able to use all of their favorite applications. Today at Build Microsoft spent time explaining their latest effort to overcome this challenge by introducing Project Centennial.
In their talk, “Project Centennial: Bringing Existing Desktop Applications to the Universal Windows Platform”, John Sheehan and Peyman Zanjani provided a solid overview of how today’s existing Win32-based applications can be easily converted into a UWP app that runs natively on Windows 10. This approach lets developers quickly move their existing application to Windows 10 with little to no effort. They may then phase in UWP specific features as budget and customer demands allow. Even better, they can easily support their current Win32 application side-by-side if their business needs demand that pre-Windows 10 support continues.
Sheehan was candid in his admission that the original plan for Windows 10 to leave behind approximately 60 million Win32 apps behind was “dumb” and that Centennial is intended to address this shortcoming. It takes a Win32 application’s existing MSI installer or traditional
setup.exe program and produces a new UWP AppX package. This AppX package can then be installed on any Windows 10 device.
Centennial works by launching your installer in a dedicated container that presents a fake Windows environment that looks real. It does not actually install your application, but rather monitors all system changes your application’s installer makes. This includes new files, file associations, and registry changes. Once Centennial understands how your installer works, it can produce a valid APPX package that follows UWP guidelines. Centennial will work on any installer that is silent, that is, the installer must not require any user interaction (clicking next, slicking installation directory, etc).
Win32 developers that like the independence their platform provides for application distribution should be pleased to know that sideloading is fully supported for the resulting UWP app and that the resulting package can be distributed in any manner. The only requirement is that this package must be digitally signed—although this signature need not come from the Windows Store and can be signed by any entity that chains up to a trusted root. The signing certificate can be provided by VeriSign, Microsoft, or a specific corporate certificate that was previously installed on the target system prior to the UWP app installation.
Project Centennial has not yet been released to the public, but the necessary Windows 10 code needed to support the project will be provide through an upcoming Windows Insider Preview build. A Developer Preview program is available now for those interested in participating sooner.