A look at Project Centennial

Project Centennial is an upcoming feature of Windows 10 that allows users to run converted desktop programs as UWP apps on PCs running the OS.

If you have followed Microsoft's Build 2016 Developer Conference last week -- if not check out our summary of the keynote -- you may know already that Microsoft plans to release release a converter that turns desktop programs into Universal Windows Platform apps.

Microsoft demonstrated the conversion of two games during the keynote but did not reveal information about the process at that time.

One of the sessions held later on however did. You can watch it on Microsoft's Developer site if you want, or continue reading first.

Project Centennial

The main idea of Project Centennial is to provide developers with an easy to use converter to convert their Win32 or Net programs to the UWP.

Programs get converted ideally without the requirement to rewrite any code, and while that is the case for many desktop programs, some will require code rewrites while others cannot be ported right now at all.

The process begins with the converter which takes the installer file (this does not need to be a msi, it can be something else, even a batch installer), to create a packaged app with UWP manifest out of it.

What's interesting here is that it will monitor what the program does during installation. This includes all of its writes to the Registry as well as files and folders that it creates. The package will simulate these writes using redirects to make the app believe that the files and Registry keys exist, when in fact, they don't on the underlying system.

This AppX package can be sideloaded to be installed on the system, or made available on Windows Store so that users can download and install it from there.

Why would developers do that?

Developers may have certain advantages when they convert their desktop programs to Universal Platform Applications.

Apart from being able to sell their app in Windows Store, being listed in Windows Store may improve the discoverability of the program.

Since they can continue to offer the program on their website (either as a Win32/Net program or Appx package), and third-party sites, they don't lose out on customers necessarily when they do.

Additionally, it may be easier to bring the converted app to other devices running Windows 10.

Last but not least, developers may add features of the UWP such as tiles, background notifications or app services.

Microsoft hopes that the conversion is just the first part of the process of turning Win32 or Net programs into full UWP apps that will run on all platforms.

What about users?

Project Centennial is a Windows 10 only feature that will require the Anniversary Update that comes out later this year on top of that.

This means that most Windows users cannot download and install these converted programs right now.

Since file and Registry writes use redirects during installation only, it means that everything is removed thoroughly when the app is uninstalled from the system. Please note that this does not include writes that happen while the app is being used.

Theoretically, security should be better as well as Windows Store apps get vetted by Microsoft before they are allowed to be offered in the Store.

Microsoft tries to improve security as well by preventing converted desktop programs from installing services or drivers, or using elevation.

These converted apps are not sandboxed however like UWP apps which means that there is more of a chance that they will do something questionable or even outright malicious.

Much of it comes down to Microsoft's review process for Windows Store apps, and how fast the company reacts when problematic applications slip through and are offered in Store for a period of time.

Summary

Article Name

A look at Project Centennial

Description

Project Centennial is a new feature of Windows 10 that allows users to run converted desktop programs as UWP apps on PCs running the OS.

Author

Martin Brinkmann

Publisher

Ghacks Technology News

Logo

Advertisement

We need your help

Advertising revenue is falling fast across the Internet, and independently-run sites like Ghacks are hit hardest by it. The advertising model in its current form is coming to an end, and we have to find other ways to continue operating this site.

We are committed to keeping our content free and independent, which means no paywalls, no sponsored posts, no annoying ad formats or subscription fees.

If you like our content, and would like to help, please consider making a contribution:

About Martin Brinkmann

Martin Brinkmann is a journalist from Germany who founded Ghacks Technology News Back in 2005. He is passionate about all things tech and knows the Internet and computers like the back of his hand.You can follow Martin on Facebook, Twitter or Google+

Comments

If the converted desktop apps are not sandboxed when opened as a UWP, there is little to nothing to offer the end user. The enhanced security of UWP is the only reason I would choose a UWP version over the same item as a desktop program. This seems like an odd thing for Microsoft to do.

Does it really seem like an odd thing for them to do when they’re trying to push their new platform in order to take absolute control over what PC software you can run? No, it is entirely in-line with their goals.

As a user, I would prefer this the other way round. They did have some strange news this week, but this isn’t it.

They’re not trying to control what you can do since you can do anything you want. The enforcement of sandboxing for Win32 apps packaged using AppX is important because it finally solves real issues like the lack of a proper uninstallation mechanism. What they’re doing here already exists in a similar fashion and it’s called Application Virtualization or App-V: https://technet.microsoft.com/en-us/windows/hh826068

So you don’t the see point in standardizing the installation process and solving DLL hell, Registry bloat, and abuse of administrative privileges? Win32 is a mess and this allows Win32 apps to remain the same while improving the way they are packaged and deployed. They’re not converted to UWP (WinRT) but they become capable of taking advantage of UWP APIs.

DLL hell and Registry bloated was fixed ages ago by .NET, side by side statically linked assemblies for native apps and the interdependency and resource protection mechanisms introduced in Windows Vista. Registry performance was no longer an issue starting with Windows XP since they moved the whole Registry into the system cache, outside of the paged pool. What era are you living in? Windows 9x? Win32 is powerful but idiots just don’t know which programs to install and so they use those apps which damage the OS and then blame the design of Windows. Don’t forget that UWP apps have many restrictions. The downsides easily outweigh the advantages. On Win32, nobody’s preventing you from making a portable app that does not even use the Registry. Think of Win32 like a powerful platform with unrestricted freedom and UWP as a locked down walled garden that is soon going to become more and more restrictive.

Would that be the same DLL hell, Registry bloat, and abuse of administrative privileges problem that Microsoft created in the first place? Call me skeptical but i don’t trust a company to fix a problem they created in the first place.

A lot of Win32 applications need admin privileges to do the the things they do. I think the writing is on the wall for Win32 applications. MS will simply no longer incrementally improve it as they did up to Windows 8.1 and it looks like they will focus evolving UWP api giving it access to things in Windows 10 to the exclusion of Win32 and that has many people rightfully upset. The side loading argument is bs too b/c like android and the Amazon appstore has shown only a small amount of people want turn that option on if a when a trusted vendor like Amazon gives peoples instructions to do so.

Whether you making a living selling customers your production software like CAD and Photoshop or you run your own application store like Steam or GOG, the fact that what you developing on is now considered legacy is bad for everyone except MS. You think CAD, which makes money selling a relatively small amount of licenses to repeat customers for thousands of dollars each, is going to be happy with UWP and MS getting 30 percent cut? The 30 percent cut precludes Steam or any other storefront from operating UWP too and many of the functions of UWP is still tied with getting your application vetted by MS.

They even brought out the registry argument is patently false and the argument the snake oil registry optimizer industry uses to the determent of users. So all we Windows users have to look for is a slow decay of Win32 or embrace the suck with UWP.

@Jeff @Corky I’m well aware that they fixed those issues but if they brought them up is because most developers simply don’t care. And Microsoft even takes all the blame for the mess they created (they called themselves dumb and stupid during the presentation). I believe their long-term plan is to remove the Registry altogether by virtualizing all the Registry reads and writes into individual files on the filesystem for both built-in and external first-party software and for all third-party software.

You mentioned portable software as an example of avoiding the Registry. Being portable doesn’t mean it doesn’t write data to the Registry. Some portable apps write to the Registry unless you configure them to use regular files (.ini, .cfg, etc.). An example of a popular Win32 portable app that does this is MPC-HC: instead of downloading the installer, get the .zip or .7z they provide, then run the binary. It will store the settings in the Registry unless you tick the setting for storing that data in an .ini file.

What Microsoft is trying to do is enforce the solutions they already created long ago while expanding them along the way.

You also say that the Universal Windows Platform (just an extension of the Windows Runtime from Windows 8 and 8.1) is limited. Win32 (itself a subset of the Windows API) was also limited when it came out with Windows NT 3.1 in 1993. .NET was meant to replace Win32 but it didn’t succeed because it wasn’t enforced. So now you have WinRT/UWP to replace both Win32 and .NET in the long term.

@neal Win32 might no longer be improved but Microsoft corrected people who called Win32 software “legacy desktop apps” during the presentation of Centennial. A Win32 app which installer is converted into AppX automatically becomes a “modern desktop app” ready to be distributed through the Windows Store or any other distribution method you want such as a website.

What is being converted is the installer, not the app. Your Win32 app will still be the same. This is good because you no longer have to bother writing installers, especially ones that are terrible at uninstalling. Windows itself will handle that for you while allowing you to do absolutely nothing to the code of your app itself.

@anon, The problem is everything you say Microsoft is try to fix with UWP has been attempted to be fixed before and every attempt seems to have just made the matter worse, the registry was used because Microsoft didn’t want programs storing settings in individual .ini files, .NET ended up being a bloated POS with multiple different version that were forced on the user (installed with the OS).

Microsoft’s biggest problem isn’t that X, Y, or Z is or isn’t secure, better, worse, it’s that Microsoft developed Windows in such a way that it’s impossible for them to remove legacy features in a sensible way, in a way that doesn’t cause problems. If Microsoft had a sensible package management system like Linux they wouldn’t have any of these problems as people who wanted to run legacy software could just install the relevant package.

.NET doesn’t solve DLL Hell. It certainly makes it _better_; however, many .NET programs have interop dependencies on DLLs in the system, these pose problems during servicing, version mismatches, etc. Similarly, the Windows Registry should have _never_ been exposed as a data contract; that is, developers should have never been able to peek and poke into HKLM\… and HKCR\… registry hives. It’s created massive headaches. Many apps leave garbage behind when they uninstall; furthermore, as the registry grows, it increases the size of memory that has to be committed to preallocated page pool. That’s one of the reasons why your system seems to run slower over time.

Centennial addresses all of these problems. First, it redirects Registry access to a private hive so that apps can’t pollute the system. Since the hive is private, it doesn’t bloat the real registry and slow down your machine. Centennial does this transparently, so that your app isn’t even aware of what’s going on. That’s a good thing. It provides better app compat. Second, Centennial redirects certain known folders so that, for example, the app doesn’t leave behind garbage in AppData. Third, Centennial apps run within a logical job (NOT A SANDBOX) that can be brought down (like any other UWP app) for servicing. Fourth, Centennial app DLLs cannot be loaded into any process that isn’t part of the app; which means that one app can’t block another app from being serviced. This is a “sensible package management system” that was specifically designed with servicing in mind.

Which makes them a good fit for the Store. Centennial is the future of Win32 apps.

as far things are understood besides whatever from the whatsoever then thinking about programming of a kind;

Registry settings to still be handled by the system:: [^] to become files on a folder \ would be the same as whatever registry entries would had being deleted; [?] so it would be about encrypted files handled by the system that would manage the load and handle of the entries of these registry files; .:fast\slower ?

Pack Installer (converted):: [^] to be specific for a party, applications where only interested to playing Windows Tiles\Notifications; [?] so it would be about pre-made programming environment just as to set a text to a label, so to create\update these Tiles and Notifications;

Store:: [^] another party from who just plays money clicks just like somehow are seem with livestreams donations [whatever it is true]; [?] so it would be about to explicitly just split the undertitle of the concept and simply wide available as an application search engine from a digital magazine of the virtual tiny captions besides the covers;

all besides whatever the operating system works to handle all the productivity;

About gHacks

Ghacks is a technology news blog that was founded in 2005 by Martin Brinkmann. It has since then become one of the most popular tech news sites on the Internet with five authors and regular contributions from freelance writers.