The Windows 10 Store will include traditional Windows desktop applications, thanks to Microsoft's Project Centennial (Project C).
It was iOS and Android support in Windows 10 that grabbed attention when announced at Microsoft's Build developer event last week, but Project C may be more significant. The thinking behind it goes to the heart of what is wrong with Windows, as well as addressing the shortage of worthwhile apps in today's Windows 8 Store.
How do you keep Windows fast and stable? Never install anything is the answer, since every new application bloats the Windows registry (its central configuration database) as well doing unpredictable things to the system. Most installs require administrator rights, and any installation has the potential to break other applications or even Windows itself.
Distinguished engineer John Sheehan described the issues in a session at Build. In Win32, there is "no such thing as an app," he said. "It is all just stuff on the system." Installer routines "vomit files all over the system." All Microsoft's fault, of course.
"We really got it mixed up with Win32. We kinda let you do anything," Sheehan said. It is not even safe to uninstall an app, since another application may have come to depend on a file installed by an earlier one.
Project C brings together two existing technologies to fix the problem. One is App-V, an enterprise product that packages apps with their dependencies so they are isolated from each other and from the system. Application virtualization means that the application can read and write to the registry and load libraries installed into system locations (such as the System32 folder), when really all those files exist only in the application's own sandbox.
The other is the Windows Store, which provides a mechanism for one-click installation and removal, auto-update, and built-in systems for discovery and payment. The fear of an app breaking the system or slowing down Windows is largely removed in the case of Store apps.
The starting point for a Project C app is any existing Win32 (or Win64) application. The way this works with App-V is through a process called sequencing. You start the App-V sequencer which captures any changes made to the system. Then you run the installer for the application. App-V records all the changes, and outputs the virtualised application package. In Project C there is a further step, which is to bundle the package as an Appx, the format of Windows Store apps.
The Project Centennial conversion process
Although the same technology is used, Sheehan emphasised that Project C is not the same as App-V. App-V has to do "unnatural things," he said, because it must work with existing binaries. Project C is aimed at developers, who may have to tweak their code before it can be packaged. That said, App-V itself will be updated, he said, so that any Project C package is ready for App-V deployment, even on Windows 7 which does not support the Windows Store.
Another difference is that Project C apps have access to the same API as Windows 10 Universal apps. This includes features like Live Tiles, for dynamic updates to the apps tile in the Start menu, and the ability to participate in Store app data sharing mechanisms, known as contracts.