Hands-On with Project Centennial: From Desktop App to UWP App in One Minute

Posted on April 1, 2016 by Rafael Rivera in Dev, Windows 10 with 0 Comments

And then there were three.

Last September, we added Brad Sams to Thurrott and Petri, dramatically expanding the amount of quality content we provide to tech enthusiasts and implementers. Today, I am excited to announce that a third writer is coming on board: Rafael Rivera, my long-time “Windows Secrets” and “Windows Field Guide” co-author, and one of the more talented people in the Windows internals space. As you might expect, Rafael will be focusing on technical/internals-type articles on Thurrott.com, and I think you’re really going to enjoy his contributions.

Thanks! –Paul

At Build 2016, Microsoft announced Project Centennial technology and its tooling will be available in the next Windows 10 Insider build. I was able to use this technology early to convert a real-world desktop app to a Universal Windows Platform (UWP) app in just one minute.

But what was Project Centennial again?

Project Centennial is Microsoft’s push to lasso classic Windows applications – Win32, .NET – and bring them into Universal Windows Platform world, without any major code-base changes.

Centennial_02

Desktop App Converter is the main workhorse in Project Centennial. It’s responsible for – wait for it – converting desktop apps to Universal Windows Platform apps. It does this by first taking the classic application’s installer and throwing it into a sterile container for monitoring. It’s here where the app’s writes to various parts of the system are watched and documented. And when completed, these notes are used to build an AppX package containing everything the app needs to run. A quick deploy to the Store and you’re done. (You can also manually distribute the .appx and double-click to install.)

There is no step two.

Your desktop app now runs on the UWP with access to everything in both worlds – COM, the file system, interprocess communication, Live Tiles, Action Center, Win32 APIs, and more. It’s all within reach.

There are of course some small limitations. For example, your app can’t elevate and do admin level wizardry. And a few file-system writes are redirected to app and/or publisher specific silos on disk to keep the operating system a little tidier. But don’t worry about all that – most apps will be none the wiser.

Centennial_01

But to truly grasp how easy this was, I sat down with the Project Centennial team and ran the Desktop App Converter against EarTrumpet, an app I wrote with David Golden. In one minute, we went from a bare Win32 app bundled with InnoSetup to a full blown UWP app, complete with a Live Tile, ready to be sent to the Store.

Very cool.

I’ll be submitting it to the Store as soon as Microsoft opens up this capability. You can follow our UWP migration adventure and download EarTrumpet via GitHub.

Tagged with , , , ,