A couple of years ago, during the BUILD conference, Microsoft announced a technology called Project Centennial , which goal is to help developers to take their existing traditional desktop applications and to bring them to the Store, along with the native full Universal Windows Platform apps. Now Project Centennial has become a reality: it’s officially known as Desktop Bridge and, after months of testing, it has been officially released . As the name says, its goal is to create a bridge between the new development approach introduced in Windows 10 (the Universal Windows Platform) and the traditional desktop ones, based on Microsoft (like the .NET Framework, Windows Forms and WPF) and non Microsoft technologies (like Java, Delphi, C++, etc.)
The Desktop Bridge release has been made possible also thanks to the release of the Anniversary Update: the last Windows 10 update, in fact, contains, under the hood, all the technology needed by Win32 application to run inside the Universal Windows Platform container. The Desktop Bridge was officially launched on 14th September 2016, together with many announcements.
Starting from 14th September, you can actually download from the Store real desktop apps and not just native Universal Windows Platform apps. Up to today, there are more than 40 converted apps available on the Store, including some very popular names like Evernote, Kodi, Open Live Writer and Arduino IDE. You can check a collection of some of the most popular converted apps here: https://www.microsoft.com/en-us/store/collections/fullsoftwareapplications/pc
Previously, the Desktop App Converter was available only as a regular download and based on a Powershell script, which you needed to maintain updated over time. Now, instead, the tool is available directly on the Store and you can install directly from the following link https://www.microsoft.com/store/apps/9nblggh4skzw . This is the best way to get tool since, every time the Desktop Bridge team will push an update, you will automatically get it, as it happens for every apps that you can download today from the Store.
On the market there are many popular tools used by developers to create installers for their desktop applications, like InstallShield , Wix or Advanced Installer . All the latest versions of these products are now capable of exporting the installer not just using the traditional formats, like EXE or MSI, but also directly using the AppX model.
This is a very common question I receive when I speak or write about this technology: my desktop app works just fine, why should I be interested into porting it to the Universal Windows Platform using the Desktop Bridge? Additionally, we know that the Universal Windows Platform is a new framework that ensure a much better deployment and security model than traditional apps, thanks to its sandbox, but it also means that sometimes it can make things more complicated when it comes to deal with some scenarios that we often have to handle in an enterprise environment.
These are really good questions, so let me help you to understand why the Desktop Bridge is a huge deal for every desktop developer out there!
The digital transformation
We moved from a PC centric approach to a mobile world, where everyone (no matter if we’re talking about a young, middle age or old person) is always connected to Internet through a smartphone or a tablet. Consequently, this shift created a huge gap between the way developers and users handles applications on a smartphone or on a PC: from one side, all the main platforms offers a Store where the user can simply search for apps and tap on a button to install and uninstall them. On the other side, instead, most of the times the user has to open its browser, look for the name of the application on a search engine, manually download a setup file and follow a guided wizard, which can be more or less complicated. In this process, the user also needs to pay attention that he has downloaded the real application and not a fake one that, under the hood, it acts as a virus or a malware. As such, the Store approach has introduced many advantages both for users and developers: for the firsts, it’s much easier and secure to find and install new applications; for developers, it’s easier to make their applications more visible and to monetize them, since they can leverage the existing infrastructure instead of having to create their own payment and license backend. The same applies for the deployment model: if we want to release an update, it’s enough to upload a new package on the developer portal offered by all the platforms; it isn’t our responsibility to implement an auto update feature within the app. It’s also easier to make sure that our customers are using the latest version of our product, making easier to support them.
A better deployment process: solving DLL hell, registry and file system bloat
We know that, many times, the install / uninstall experience provided by traditional desktop applications isn’t really smooth Most of the times, the uninstall procedure doesn’t remove all the registry and file system entries, because it may happen that they are shared with other applications. Another common problem is when multiple applications have a dependency from the same DLL and, at some point, one app updates it to a newer version, breaking all the other applications. The Universal Windows Platform deployment model, instead, doesn’t suffer of these problems: the application runs inside a container and, as such, the file system and the registry are virtualized and merged, in real time, with the real registry and file system. As such, every application has its own set of DLLs, registry keys and files, so there’s no risk of mixing them. Additionally, both the update and the uninstall process are much smoother: in the first case, you just install an updated AppX and you overwrite the files that have changed; in the second case, you just delete the folder where the app was installed and the one where the local app data is stored.
A modern development runtime
The .NET framework has born in a technological context very different from the current one: the mobile experience, the cloud, the Internet of Things aren’t just buzz words, but they are real technologies that are spreading more and more in the latest years. From this point of view, the Universal Windows Platform has a lot to offer: it’s a modern development platform, which is able to run on many different devices (computers, tablets, smartphones, Xbox One, HoloLens, etc.), and which makes easier to create performant and beautiful applications; it offers visual tools (like Composition APIs and the XAML Adaptive Triggers) that help to create modern user interfaces, which are able to easily adapt to different screen sizes and to the new generation of devices, which propose resolutions and DPIs higher than ever; it includes APIs to easily implement new ways to interact with the application, like inking, speech interaction, push notifications, etc.
Many of these changes are often requested also in enterprise scenarios not just because the customer wants to follow the latest trends, but because the digital transformation has brought a deep change in the way many people work every day: it’s hard to find a company that, at least, hasn’t started to consider to modernize its IT infrastructure and to start expanding their offer, by adding to the classical desktop application also a new set of tools that can be used by mobile workers, who need to leverage cloud, data synchronization, touch interfaces, etc. In all these contexts, Windows 10 and the Universal Windows Platform can offer, without any doubt, something more than traditional Win32 apps.
There are multiple approaches to use the Desktop Bridge. The key message to take away is that, as a developer, you can move at your own speed and you can decide to stop at the phase which satisfies best your requirements. You aren’t forced to go through all the steps and, if you wanna do it, that’s great because in the end you’ll get a full UWP app, but you can take the time you need to adjust every step based on your scenario. It’s important to highlight also that a desktop converted app is be able to run only on computers and tablets with the full Windows 10 Anniversary Update version : only when you migrate it to a full UWP app, you’ll be able to launch it also on the other devices of the Windows 10 family, like Xbox One or HoloLens. The reason is that the desktop version of Windows is the only one that, other than including the Universal Windows Platform, contains also all the needed runtimes and frameworks to run Win32 apps. Let’s see a brief overview of the various opportunities, in the next posts we’re going to see them in details.
So far, we’ve talked about the Store opportunity for converted apps, but in some scenarios (especially the enterprise ones) you don’t need a Store to distribute your apps, but more private ways. The good news is that the Desktop Bridge, together with the Anniversary Update, can be a great choice also for applications that aren’t released through the Store. In the past, Microsoft has always offered the chance to side load AppX packages, but there were some challenges: in Windows 8, you were required to buy some special licenses to enable it; Windows 10 has removed this requirement and now you can turn on the sideloading option directly in the Settings but, before the Anniversary Update, you needed to run a set of Powershell scripts to actually install the package; the November Update has introduced the Windows Store for Business, which is a private version of the public Store dedicated to enterprises. It’s the best and easiest way to distribute applications within your company, but your IT infrastructure needs to satisfy a set of requirements (like adopting Azure Active Directory), which can’t be given for granted. The Anniversary Update has introduced a new and important step forward to make distribution even easier: now the AppX packages are self executable files , like any other installer. You can just double click on it on any Anniversary Update computer and start the installation process.
The only requirement, from a security point of view, is that the AppX has to be signed with a valid digital certificate: you can choose to buy one from a public certification authority (in case you want to distribute your application to a wide audience without using the Store) or you can create a self-generated certificate (in case you want to distribute your application to a small set of users or within your company). However, this isn’t something new: also standard installers need to be signed with a valid certificate, otherwise Windows, for security reason, will try in any possible way to prevent you installing the app, since it isn’t trusted.
The same exact process applies to native UWP apps, it isn’t a specific requirement of converted apps. However, if you have only used the Store, so far, as distribution platform, everything has always been “hidden” since, when you publish an AppX package on the Store, you don’t have to deal with certificates, since the Dev Center will automatically take care of digitally signing the AppX for you during the ingestion process.
In the end, one of the main advantages of the new AppX format is that, as a developer or as an IT Pro manager, you can distribute your apps in multiple ways:
One important concept to highlight is that, at the moment, not every developer is allowed to submit desktop apps on the Store, but they need first to get approval by Microsoft. The main reasons for this requirement are:
If you have a desktop application or a game that you would like to bring on the Store using the Desktop Bridge, you can fill the following form: https://developer.microsoft.com/en-us/windows/projects/campaigns/desktop-bridge . A Microsoft team will evaluate your application and, if it gets accepted into the program, a person of the AppConsult team will reach you and will help you to solve any technical blocker and to move on with the legal process required to publish converted app. Any tentative of submitting a converted app, right now, will be rejected, since these special apps leverage a restricted capability (called runFullTrust ) . Consequently, as soon as you’ll try to upload the AppX in the Packages step of the submission process on Dev Center, you’ll get an error and you won’t be able to move on with the other steps.
In this first post we’ve learned why, as a desktop developer, you shouldn’t underestimate the Desktop Bridge and why it can be a great choice to start modernizing your applications, no matter if we’re talking about a consumer or a business application. In the next posts, we’re going to explore with more technical details each phase of the conversion process, starting from the Desktop App Converter. Stay tuned!
Happy coding!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.