With Windows 10 Microsoft has introduced the Universal Windows Platform (UWP) and along with this introduction it has positioned UWP apps as the application development platform for the future.
With Windows 10S (Streamlined for Simplicity, Security and Speed) Microsoft have even introduced a version of Windows that only runs apps from the Windows Store (only UWP apps are allowed in the Windows Store).
Besides plaftform independance, which has perhaps become slightly less relevant now that Windows Phone support has ended, UWP has much more to offer such as:
- UWP apps run in a sandboxed environment with a virtualized file system and registry.
- UWP apps have access to a subset of the win32 api’s.
- Keep Enterprise data secure with Windows Information Policies.
Deployment and management
- UWP apps are deliverd as a single file app package (.appx).
- UWP apps can be downloaded and installed from the Windows Store.
- UWP apps can also be installed from private store (Microsoft Store for Business).
- UWP apps are auto updated via the store.
- UWP apps can be managed with MDM/MAM such as Microsoft InTune, Citrix XenMobile or VMware AirWatch.
- Better user experience for touch capable devices.
- Better support for high dpi.
To take full advantage of the platform, applications will need to be (re)written for UWP using Visual Studio 2017.
But what about your existing win32 or .NET applications? Fortunately Microsoft is offering a way to package existing applications, called the Desktop App Converter (formerly Desktop Bridge). While the term “Converter” is in the name of this tool, it doesn’t convert your app but wraps it in an appx app package.
|Whilst this may not give you the full functionality of a native UWP app, using the Desktop App Converter (DAC) still gives you the security and deployment & management benefits.
To convert a legacy application the converter runs the desktop installer in an isolated Windows environment by using a clean base image provided as part of the converter download. It captures any registry and file system I/O made by the desktop installer and packages it as part of the output.
While many applications can be converted to UWP using the Desktop App Converter, there are a couple of limitations. From these limitations here a couple of common ones that I see often in Windows applications:
- The application folder in UWP (eg C:\Program Files\WindowsApps\Microsoft.BingWeather_4.22.3112.0_x64__8wekyb3d8bbwe) is not writable. This means that applications that try to write into the application’s folder (such as a settings ini file) will fail.
- Applications cannot write to the HKLM hive of the registry.
- Applications cannot install components during runtime or write to folder like Program Files.
- .NET applications need to target (be compiled against) at least version 4.6.1 of the .NET framework.
Cloudhouse offers a UWP migration path for such applications by first converting them to a Cloudhouse Compatibility Container which will remediate application issues by using filesystem, registry and api redirection. The resulting container can then be packaged as an appx using the Desktop App Converter.
Let’s take an example of this migration path, for this blog I am taking the well known Notepad++ editor. Notepad++ is actually an application that behaves very well and adheres to windows application development best practices and guidelines.
Notepad++ installs by default into C:\Program Files (x86)\Notepad++ but could be configured to install into a user writable location or even run as a portable application by downloading the zip files rather than the msi installer.
However once converted to UWP the application will always run from the app package folder (even if you configured Notepad++ to run in e.g. AppData). In my case the resulting app package location is C:\Program Files\WindowsApps\NotepadPlusPlus_22.214.171.124_x86__dhwcvzgw8ct56.
However any attempt to update Notepad++ will fail because the updater cannot write the updated files into the app package folder. This means you can never (auto) update an UWP app unless you reconvert it with the Desktop App Converter and redeploy on each update.
Do you want your users to keep using older and potentially unsecure versions forever?
By converting Notepad++ to a Cloudhouse Compability Container first, we can redirect the updater to the LocalCache folder. The LocalCache folder is part of the UWP managed application specific user data folders. This means that when you remove an appx package this folder is also removed.
Cloudhouse joins G-Cloud 12
Moving the UK public sector to the cloud just got a whole lot easier. Cloudhouse application compatibility packaging is now available from the G Cloud 12 Digital Marketplace.
Migrate ALL applications to Amazon AppStream 2.0 and AWS WorkSpaces
Migrate ALL your desktop applications to Amazon Workspaces or Amazon AppStream 2.0 with Cloudhouse.
The Magic of Compound Application Virtualization
I am Priya Saxena, a supermom, virtualization enthusiast and a developer by heart. I started my career 11 years ago as a passionate engineering graduate