You are probably wrong about Centennial apps. Here are the facts


Recommended Posts

Note: You may be a developer or a Windows enthusiast who already know about centennial! If so, hats off to you, as you are one of the few! :)

 

I have seen a lot of confusion in the last few years around what Centennial Bridge for Win32 desktop apps for Windows 10 really is. Even many tech reporters are not often clear about what it is. But I don't blame them or any of you who may be unsure about Centennial apps. Because all other forms of Windows Store apps follow specific policies and restrictions, it makes sense why many people feel centennial also are bound by the policies of other UWP store apps. So, I am making a simple thread to explain what Centennial apps are and what they can or cannot do.

 

Centennial Apps, not Store Apps

 

  1. Centennial apps are NOT  Win32 apps for the Windows Store. That's the most popular misconception. Many believe centennial means Win32 apps that are from the Windows Store. Rather, centennial is a brand new Install technology that is intended to replace the aging MSI (Microsoft installer) technology introduced in the late 90s.
  2. Most desktop apps SHOULD be centennial whether or not it is in the Windows Store. Since Centennial is an install technology, any desktop app can use it regardless of the developer wanting to bring it to the Store. By doing so, you are ensuring your app is safer and cleaner to install and uninstall. You can also use the Settings app to let the user move your apps from one drive to another on-demand without needing to uninstall or cause incompatibilities.
  3. Centennial apps can be distributed via the web and installed by a double-click. This builds upon the previous point. Just like an app can distribute their .exe files using the MSI or another install tech. An app can also be downloaded from the web and be double-clicked to install. Centennial app installers have .appx extensions and double-clicking them will simply bring up the centennial installer.

 

Sandboxed or no?

  1. Any centennial apps (not just ones installed through the Store) will benefit from that sandboxing of Centennial apps. Even those installed from the web and through double-clicking the installer are sandboxed.
  2. Centennial apps get their own copy of the registry, program files folder, AppData folder, Windows folder, System32, folder, etc. When they write to the registry or put a random DLL in System32, it'll go to their copy of these folders and registry. When they read from the registry or a system folder, they will read whatever is in the actual registry or system folder PLUS the changes they had made. So, If Program A puts a random "A.DLL" on system32, "A.DLL" is sandboxed and doesn't actually get written to the real system32. However, when "Program A" reads what files are in system32, it'll see the actual files in system23, PLUS the "A.DLL" it added previously. So, to the program, it THINKS it is making changes to the system, but in reality, it's an illusion. That's how the program maintains compatibility.
  3. Centennial apps cannot run as administrator. If a desktop app requires being run as administrator to function in part or fully, it cannot be converted to a centennial app. This means Microsoft Visual Studio cannot be a centennial app.
  4. Centennial apps cannot access the low-level kernel modes and cannot be or install device drivers. This is an extension of the Administrator privileges limitation mentioned in the previous point.

 

Centennial apps can do WHAT??

It might shock you, but centennial apps can do things that are out of bounds or completely banned for other UWP apps. I have heard/read trusted Windows press and bloggers say things akin to "I don't like programs that add themselves to Windows startup. That's why I'll use centennial apps." Well, in that case, I have bad new for you. :) But it's still good news overall.

 

In essence, centennial apps can do the following:

  1. They can run in the System Tray
  2. They can run in the background without having any UI present or icon present in system tray
  3. They can add themselves as a startup program AND can start automatically with Windows. I have a Store app that does this! It's called "Ear Trumpet".
  4. They can run 24/7 and take up full system resources and not be managed by Windows power management like regular UWP apps. So, battery life can still suffer.
  5. They are set to what is called "full permission", meaning they can launch .exe files, write to any non-system folder locations, etc.
  6. They can use or monitor your location WITHOUT asking for your permission like regular UWP apps do. Furthermore, they WILL NOT necessarily show up in the privacy section of the settings app. A developer CAN CHOOSE to use the UWP extension to ask for location and appear in the privacy. But Microsoft is not requiring this so that it can maintain compatibility with existing desktop apps running as a centennial.
  7. This list is only scratching the surface. There are a bunch of other stuff centennial apps can do that is not permitted by your regular UWP app.

 

Is Centennial app a UWP app?

Yes, and No. Centennial apps are PACKAGED as UWP app, but they are not UWP app themselves. The centennial INSTALLER tech I mentioned is an evolution of the UWP install model. Thus, only the packaging is true UWP. HOWEVER, as a centennial app, the developer has ACCESS to more UWP APIs and can add them as needed. For instance, centennial apps can do the following:

 

  1. They can add live tiles
  2. They can add interactive notifications
  3. They can spawn application windows that are built using UWP controls

 

If the developer chooses to, they can add UWP capabilities to their app, or replace older Win32 code by an UWP counterpart. Potentially, the developer can slowly replace parts of their code one-by-one to their UWP app counterpart to the point it has ONLY UWP code, and then, it becomes a pure UWP app. See the next item for more info.

 

Centennial apps CAN run on Mobile, Hololens, and Xbox...potentially

As mentioned in the previous section, centennial apps have access to the UWP APIs. If the developer chooses to replace parts of their app code with an UWP counterpart, they can do so, assuming such counterpart exists. If at some point all the old Win32 codes have been replaced by UWP counterparts, that app becomes a PURE UWP app, and it can run everywhere UWP apps can run.

 

In essence: once a centennial app no longer has any non-uwp code remaining, it becomes a "pure" UPW app and is bound by all UWP restrictions and is fully sandboxed. it can run on Xbox, Hololens, Phone, PC, and Surface hub.

 

Conclusion

This has been a brief quick-start guide to centennial apps. Do leave a comment with your questions and either I or someone else will try and help, God Willing. If you are a developer who has experience with building centennial apps, you are encouraged to amend the information here or add more information via replies!

Link to comment
Share on other sites

This topic is now closed to further replies.