Introduction
Are you looking for a way to convert your existing Win32/WPF/Classic desktop applications to Universal Windows Platform? Don't want to change any code? Then go through this article, it will help you to convert your desktop apps to UWA (Universal Windows Apps) using Project Centennial.
Need for Universal Windows platform Apps
Are you facing below problems in Classic Windows desktop/WPF/Win32 apps?
- Error in installations (incomplete installations, access issues, registry failure, framework problem)
- DLL hell issue (occur when same DLL is referring by multiple program but DLL is replaced due to version information is not persist by application)
- Uninstallation issue (does not uninstall completely, application un-install but registry key was not removed)
- Application utilizing high system resources (processor, RAM leads to hang up machine)
- One-click installation not possible
- Performance issue
- Want to run application on Windows 10
To over come such issues, we should move to UWA (Universal Windows Apps). There are multiple links exist on internet that explain how to build Universal Windows Apps but none will explain how to convert our existing Classic Windows/WPF/Win32 Desktop Apps to UWA. The answer is Project Centennial.
What is Project Centennial ?
Simply put, it is nothing but a useful desktop application convertor that will help developers to convert their desktop application/Win32/WPF Classic application to UWA. You just need to give your installer file (MSI) or .EXE file as an input and it will work on file and give you a .AppX or .AppXbundle file, that can be easily installed on Windows 10 and furthermore you can deploy that file to Windows Store.
Project Centennial also gives a package identity to converted AppX/AppXbundle file (package identity will be useful when deploy it to windows store).
According to Microsoft:
"Desktop App Converter is a pre-release tool that enables developers to bring their existing desktop apps written for .NET 4.6.1 or Win32 to the Universal Windows Platform. The developers can run their desktop installers through the converter in an unattended (silent) mode and obtain an AppX package that can be installed via the Add-AppXPackage PowerShell cmdlet on their development machine."
List of Features
- Apps created by Project Centennial can get full Windows 10 leverages. Apps get smoothly installed using sideloading features Read here: Sideloading features of Windows 10
- As your APP has package identity, you can easily call UWA (Universal Windows Apps) API in your existing code.
- The user will experience a Window Store-like installation process as one-click installation is possible.
- Install and uninstall gets Intelligible as all required files and registry entries stored on single point, (in Windows desktop applications, where some temp files and few registry entries gets left behind even after you un-install application).
- Overall system speed will not be affected as registry entries will not span across all registry and installation files will be at single location (in Classic/Win32 desktop application registry entries and installation files span across system and will load on system boot each time, so it will cost to system performance), as well as Window 10 will handle UWA differently than classic application so it ends up in resource and performance improvement.
- After conversion, your output package will be gifted with Windows Apps features like great user interface with XAML, live tiles and updates, services, background work and more.
- Windows Store licensing and update amenity will be 'bydefault' applicable to your converted app
- Once it converted to AppX, we can run it on different windows platform like Desktop, Mobile, XboX, Surface, Holographic Devices, IOT etc.
Pre-requisite
It needs at least Windows 10 to be on the system to run Project Centennial. Hardware could be a x64 processor with good amount of memory.
How to use Project Centennial
First you need to download DesktopAppConverter.zip and then base image .wim file, both files can be downloaded from here.
Unzip 'DesktopAppConverter.zip' file on local system.
Use power shell window with admin rights to install convertor on your machine, see below command to install desktop convertor
PS C:\> .\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose
Successfully running the above command will lead to reboot.
After rebooting, you are almost ready to use app convertor. PowerShell or command prompt can be use to run this tool, you need to provide different parameters to run it like Installer
, Destination
, PackageName
, Publisher
and Version
to AppX file (which is the output of the convertor program).
Syntax will be as below
DesktopAppConverter.ps1
-Installer <String> [-InstallerArguments <String>] [-InstallerValidExitCodes <Int32>]
-Destination <String>
-PackageName <String>
-Publisher <String>
-Version <Version>
Reference
Fore more details and usage you can switch to following link: Windows Dev Center: Project Centennial
Points of Interest
It is a really amazing convertor that will convert your Classic Windows/Win32 EXE to directly AppX without any code change, additionally we will get all Windows Store Apps-like benefits in bonus. Now let's see in the future how developers will treat this opprtunity and convert their EXE/MSI to AppX.
Hope it will help you all to convert your existing Win32/Windows Classic/WPF applications to the new world AppX
Happy conversion to you!
-Prasad