SlideShare a Scribd company logo
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
Agenda 1. Desktop Bridge overview
2. The conversion process
3. Enhancing a packaged app
4. Expanding a packaged app
5. Migrating a packaged app
6. Reach all the devices with UWP
Classic desktop applications
• Based on the Windows APIs (Win32) included in Windows
• They are available only in the full edition of Windows for PC and tablets
• They can be developed with multiple technologies and platforms, including
non-Microsoft ones:
o Windows Forms
o WPF
o C++
o Java
o Delphi
o And many more…
User experience challenges
today
Getting the right software
Finding the right, trusted installer
Chain-installers (adware)
Staying up-to-date
Software vendor challenges
today
Maintaining installer tech
Providing auto-updates
“DLL Hell”
Modernization
Trustworthy distribution
Monetization/licensing
Universal Windows Platform
Modern deployment technology
• Streamlined developer experience
o No more setup authoring
o Only trusted apps are able to install
o Optimized updates/downloads
• Great user experience
o No elevation/user account control
o Always up-to-date
o Clean uninstallation, minimal system impact
• Ready for the enterprise
o Distribute through sideloading, MDM or
Windows Store for Business
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
A modern packaging system
9
• The Win32 process runs in an isolated
environment, but not in a sandbox like
UWP apps
• Special access to the registry:
o Write operations are stored into a binary
file
o Reading operations are made against a
merge of the system registry and the
binary file
• The AppData folder is mapped with the
same folder used by UWP apps for
local storage, which is isolated
The manifest file
A XML file that describes the features of the application, like:
• The entry point
• The identity of the application (name, publisher, CPU architecture,
etc.)
• The capabilities
• The extensions (both special Desktop Bridge and UWP extensions)
• The visual layout of the default assets (tile, store logo, taskbar icon,
etc.)
It’s a declarative and easier model to handle compared to a
regular desktop application
File system redirection
• Converted apps are installed in C:Program FilesWindowsApps:
C:Program FilesWindowsAppsMicrosoft.DesktopAppConverter_8wekyb3d8bbwe
• App data is redirected to C:Users<username>AppDataLocalPackages
C:Users<username>AppDataLocalPackagesMicrosoft.DesktopAppConverter_
8wekyb3d8bbweLocalCache
The Virtual File System
12
• To solve the “DLL hell” problem, every converted app has a special folder
called VFS, which maps all the system folders (like Program Files, Windows,
System32, etc.)
• When a converted app is running, it will look for 3rd party dependencies in the
VFS folder and not in the system folders
• This way, the package deployment can’t overwrite existing DLLs or
dependencies used by other apps
The requirements
13
• A converted application always runs in the user context and can’t elevate
itself as admin
• Your app can’t install a kernel-mode driver or a Windows service
• Your app can’t modify the HKEY_LOCAL_MACHINE (HKLM) registry hive
(since it’s outside the user’s scope)
• Your app can’t write data in the installation folder
• Due to file system redirection and registry virtualization, your app can’t
write in AppData or in the registry with the goal of sharing data with
another app
Special extensions
14
Thanks to a set of special manifest extensions, you can still implement most of
the typical features of a desktop app, but in a better and simpler way:
• Startup tasks
• Execution aliases
• Protocol association
• Files and File Explorer integration
• Files preview integration in File Explorer (for example, thumbnails)
• Firewall rules
• Expose COM objects to other applications
Demo: The deployment
experience of a converted
desktop application
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
Multiple options to convert a desktop application
17
• Desktop App Converter from Microsoft starting from an installer or a self-
executable application
• Packaging with Visual Studio 2017
• 3rd party tools to create installers like:
o InstallShield
o Wix
o Advanced Installer
o RAD Studio for Delphi
o InstallAware
Desktop App Converter and installers
18
• The Desktop App Converter is a command line tool based on a set of
PowerShell scripts, which leverages the Container feature added in the
Anniversary Update
• It’s available from the Store: https://aka.ms/converter
• It requires a base image that matches your current Windows build, that can
be downloaded from https://aka.ms/converterimages
• You need the Windows 10 SDK installed:
https://go.microsoft.com/fwlink/?linkid=821375
Sample DAC command
DesktopAppConverter
-Installer "FlightTracker.msi"
-Destination "C:FlightTracker-AppX"
-PackageName "FlightTracker"
-Publisher "CN=AppConsult"
-Version "1.0.0.0"
-MakeAppx -Sign -Verbose
Installer requirements
• If it’s a MSI installer, DAC is able to handle it automatically
• If it’s made with another technology, it must support silent installation and you
need to specify the parameter to trigger it using
-InstallerArguments
DesktopAppConverter
-Installer "FlightTracker-Setup.exe"
-InstallerArguments "/S"
-Destination "C:FlightTracker-AppX"
-PackageName "FlightTracker"
-Publisher "CN=AppConsult"
-Version "1.0.0.0"
-MakeAppx -Sign -Verbose
Dealing with the CPU architecture
• By default, if the app isn’t compiled for a specific CPU architecture, the DAC will
generate a x64 package
• If you don’t need to address such a big memory space, it’s better to generate a x86
package (or even better, both) to reach a broader range of devices
DesktopAppConverter
-Installer "FlightTracker.msi"
-PackageArch "x86"
-Destination "C:FlightTracker-AppX"
-PackageName "FlightTracker"
-Publisher "CN=AppConsult"
-Version "1.0.0.0"
-MakeAppx -Sign -Verbose
What you get as output?
A folder with the app package version of your desktop app
• The app manifest
• Virtual file system
• Binary registry file
• Assets
• Resources for Windows 10 scaling support
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
DAC and manual conversion
• The Desktop App Converter can convert also a standalone application stored
in a folder (executable with its dependencies)
• In this case, the Base Image and the Windows Container feature aren’t
required
• The output is the same as when you use the DAC with a traditional installer,
except for the binary registry file and the virtual file system folder
Sample manual DAC command
DesktopAppConverter
-Installer "C:FlightTracker"
-Destination "C:FlightTracker-AppX"
-AppExecutable "FlightTracker.exe"
-PackageName "FlightTracker"
-Publisher "CN=AppConsult"
-Version "1.0.0.0"
-MakeAppx -Sign -Verbose
Demo: Desktop App
Converter with a MSI installer
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
Keep a converted project up-to-date
• Typically, the Desktop App Converter is executed just once and it’s the
starting point of the process
• You leverage the output folder and reiterate on it every time you need to
release a new update with some changes, like:
o An updated executable
o One or multiples updated or added DLLs
o One or multiples updated or added images or assets
o New extensions declared in the manifest
• Exception: if you have updated the installer to add new registry keys, 3rd
party dependencies, expose COM objects, etc. you need to run DAC again to
capture all the changes
MakeAppX
• MakeAppX is a command line tool included in the Windows 10 SDK that can
generate an app package starting from the output of the DAC
• With the –MakeAppX parameter, the DAC can generate the package
automatically as output of the process
• You can manually generate the package starting from the output folder of
the DAC every time you make some changes
makeappx pack –d "PackageFiles" –p "MyApp.appx" -l
SignTool
• If you want to deploy your app manually or in an enterprise environment, the
app must be signed with a trusted certificate
• It can either be a certificate purchase from a certification authority or a self-
generated certificated trusted by all the devices in your company
• If you want to publish the app on the Windows Store or Windows Store for
Business, you don’t need to sign it
• For testing purposes, you can use the –Sign parameter with the DAC to
generate a testing certificate and an already signed app package
• If you have manually generated the package, you can use a command line
tool called SignTool included in the Windows 10 SDK to sign the AppX
Verify the package
• If you are on the Anniversary Update, don’t use the Windows App
Certification Kit (WACK) to certify a converted app, since it doesn’t support
them
• If you are on the Creators Update and you have installed the matching SDK,
WACK properly support testing and identifying potential issues in a
converted desktop app
Demo: The WACK report
Other conversion options
• If you have already an installer for your application created with any of these
tools, you can export an app package directly without using the Desktop App
Converter:
oInstallShield
oWix
oAdvanced Installer
oRAD Studio
oInstallAware
Demo: Exporting an app
package using Advanced
Installer by Caphyion
Migrate at your own pace
app
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
Enhance
• You can start to leverage some
specific Windows 10 features
• New generation’s UWP APIs to
perform tasks like sending
notifications, updating the live tile or
leverage speech services.
• Keep customers engaged and prompt
them to return to the app thanks to
the new features
Supported UWP APIs
• Converted desktop apps can use a wide range of Universal Windows Platform
(UWP) APIs, even if they have not fully transitioned to a UWP app
• Some UWP APIs available to full desktop applications are not supported for
converted apps. If your desktop application used UWP APIs before conversion, you
should verify those APIs are still supported.
• Supported API’s
o You can view APIs newly supported in converted apps or APIs supported in both
converted apps and desktop applications at
https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-supported-
api#new
Welcome Visual Studio 2017!
You can add to your existing desktop solution a JavaScript project which will help
you to:
• Generate the app packages
• Edit the manifest using the visual editor
• Generate assets for all the supported Windows scaling factors
Desktop Bridge Debugging Project: a Visual Studio extension to launch and
debug a desktop as converted
https://aka.ms/bridgedebugging
Desktop Bridge Helpers
• Goal: keep the same code base both for the converted and the native app
• Open source library based on a C++ method exposed by the Windows kernel
which checks if the app has an identity
• It can detect if the app is running as converted or as native
https://aka.ms/bridgehelpers
DesktopBridge.Helpers bridgeHelpers = new DesktopBridge.Helpers();
if (bridgeHelpers.IsRunningAsUwp())
{
//show a toast notification
}
Demo: Enhancing a Windows
Forms app to display a toast
notification
Expand
Demo: Expanding a Windows
Forms app to use a
background task
Migrate
Demo: a UWP app which
invokes a Win32 process on
desktop
Reach all
Demo: moving all your code
to UWP
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge
Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge

More Related Content

DOCX
Eclipse plug in mylyn & tasktop
PDF
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
PDF
Architecting the Future: Abstractions and Metadata - STL SilverLinings
PDF
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
PDF
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
PDF
Dr. Strangelove, or how I learned to love plugin development
PPT
ITU - MDD - Eclipse Plug-ins
PPTX
Windows 10 UWP tips and tricks for developers
Eclipse plug in mylyn & tasktop
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
Architecting the Future: Abstractions and Metadata - STL SilverLinings
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
Dr. Strangelove, or how I learned to love plugin development
ITU - MDD - Eclipse Plug-ins
Windows 10 UWP tips and tricks for developers

What's hot (18)

PDF
Architecting the Future: Abstractions and Metadata - CodeStock
PPTX
M365 global developer bootcamp 2019 PA
PPTX
M365 global developer bootcamp 2019
PPTX
Windows 10 UWP Development Overview
PDF
Eclipse IDE, 2019.09, Java Development
PPTX
Side loading
PPT
What's new in p2 (2009)?
PDF
Homestead demo
PDF
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
PPTX
Universal Windows Platform Overview
PPT
Code quality tools
PPTX
Develop android application with mono for android
PDF
Application Virtualization, University of New Hampshire
DOC
Components lab
PDF
20150728 100분만에 배우는 windows 10 앱 개발
PPT
Hp Loadrunner
PDF
2018.02.11 installation guide rhapsody in c and cpp
PDF
Architecting the Future: Abstractions and Metadata - CodeStock
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019
Windows 10 UWP Development Overview
Eclipse IDE, 2019.09, Java Development
Side loading
What's new in p2 (2009)?
Homestead demo
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
Universal Windows Platform Overview
Code quality tools
Develop android application with mono for android
Application Virtualization, University of New Hampshire
Components lab
20150728 100분만에 배우는 windows 10 앱 개발
Hp Loadrunner
2018.02.11 installation guide rhapsody in c and cpp
Ad

Similar to Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge (20)

PPTX
Build 2017 - B8011 - Bring your desktop apps to UWP and the Windows Store usi...
PPTX
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
PPTX
Modernizing Desktop Apps on Windows 10
PDF
VMworld 2013: ThinApp 101 and What's New in ThinApp Next Version
PPTX
windows application development company
PDF
How to modernise WPF and Windows Forms applications with Windows Apps SDK
PPTX
Deep Dive into WinRT
PPTX
Introduction to Windows 8 Development
PPTX
Welcome to windows 8
PPTX
Runtime 8 and Windows Phone 8
PPTX
Sequence Like a Boss - BriForum 2015 Denver
PDF
Building a Windows 10 Game with C#, XAML and Win2D
PPTX
Getting Started Developing Universal Windows Platform (UWP) Apps
PDF
Read Me
PDF
Read Me
PDF
Read Me
PDF
Read Me
PDF
Read Me
PDF
VMware ThinApp 4.5
PDF
QBS Visual Studio 2012 and modern windows apps
Build 2017 - B8011 - Bring your desktop apps to UWP and the Windows Store usi...
Build 2017 - B8093 - Nextgen UWP app distribution: Building extensible, strea...
Modernizing Desktop Apps on Windows 10
VMworld 2013: ThinApp 101 and What's New in ThinApp Next Version
windows application development company
How to modernise WPF and Windows Forms applications with Windows Apps SDK
Deep Dive into WinRT
Introduction to Windows 8 Development
Welcome to windows 8
Runtime 8 and Windows Phone 8
Sequence Like a Boss - BriForum 2015 Denver
Building a Windows 10 Game with C#, XAML and Win2D
Getting Started Developing Universal Windows Platform (UWP) Apps
Read Me
Read Me
Read Me
Read Me
Read Me
VMware ThinApp 4.5
QBS Visual Studio 2012 and modern windows apps
Ad

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Cloud computing and distributed systems.
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
Approach and Philosophy of On baking technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Advanced IT Governance
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
The AUB Centre for AI in Media Proposal.docx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Per capita expenditure prediction using model stacking based on satellite ima...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Cloud computing and distributed systems.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Understanding_Digital_Forensics_Presentation.pptx
Modernizing your data center with Dell and AMD
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
Machine learning based COVID-19 study performance prediction
Advanced Soft Computing BINUS July 2025.pdf
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Advanced IT Governance
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology

Bring and distribute your dekstop applications on the Universal Windows Platform with the Desktop Bridge

  • 2. Agenda 1. Desktop Bridge overview 2. The conversion process 3. Enhancing a packaged app 4. Expanding a packaged app 5. Migrating a packaged app 6. Reach all the devices with UWP
  • 3. Classic desktop applications • Based on the Windows APIs (Win32) included in Windows • They are available only in the full edition of Windows for PC and tablets • They can be developed with multiple technologies and platforms, including non-Microsoft ones: o Windows Forms o WPF o C++ o Java o Delphi o And many more…
  • 4. User experience challenges today Getting the right software Finding the right, trusted installer Chain-installers (adware) Staying up-to-date
  • 5. Software vendor challenges today Maintaining installer tech Providing auto-updates “DLL Hell” Modernization Trustworthy distribution Monetization/licensing
  • 7. Modern deployment technology • Streamlined developer experience o No more setup authoring o Only trusted apps are able to install o Optimized updates/downloads • Great user experience o No elevation/user account control o Always up-to-date o Clean uninstallation, minimal system impact • Ready for the enterprise o Distribute through sideloading, MDM or Windows Store for Business
  • 9. A modern packaging system 9 • The Win32 process runs in an isolated environment, but not in a sandbox like UWP apps • Special access to the registry: o Write operations are stored into a binary file o Reading operations are made against a merge of the system registry and the binary file • The AppData folder is mapped with the same folder used by UWP apps for local storage, which is isolated
  • 10. The manifest file A XML file that describes the features of the application, like: • The entry point • The identity of the application (name, publisher, CPU architecture, etc.) • The capabilities • The extensions (both special Desktop Bridge and UWP extensions) • The visual layout of the default assets (tile, store logo, taskbar icon, etc.) It’s a declarative and easier model to handle compared to a regular desktop application
  • 11. File system redirection • Converted apps are installed in C:Program FilesWindowsApps: C:Program FilesWindowsAppsMicrosoft.DesktopAppConverter_8wekyb3d8bbwe • App data is redirected to C:Users<username>AppDataLocalPackages C:Users<username>AppDataLocalPackagesMicrosoft.DesktopAppConverter_ 8wekyb3d8bbweLocalCache
  • 12. The Virtual File System 12 • To solve the “DLL hell” problem, every converted app has a special folder called VFS, which maps all the system folders (like Program Files, Windows, System32, etc.) • When a converted app is running, it will look for 3rd party dependencies in the VFS folder and not in the system folders • This way, the package deployment can’t overwrite existing DLLs or dependencies used by other apps
  • 13. The requirements 13 • A converted application always runs in the user context and can’t elevate itself as admin • Your app can’t install a kernel-mode driver or a Windows service • Your app can’t modify the HKEY_LOCAL_MACHINE (HKLM) registry hive (since it’s outside the user’s scope) • Your app can’t write data in the installation folder • Due to file system redirection and registry virtualization, your app can’t write in AppData or in the registry with the goal of sharing data with another app
  • 14. Special extensions 14 Thanks to a set of special manifest extensions, you can still implement most of the typical features of a desktop app, but in a better and simpler way: • Startup tasks • Execution aliases • Protocol association • Files and File Explorer integration • Files preview integration in File Explorer (for example, thumbnails) • Firewall rules • Expose COM objects to other applications
  • 15. Demo: The deployment experience of a converted desktop application
  • 17. Multiple options to convert a desktop application 17 • Desktop App Converter from Microsoft starting from an installer or a self- executable application • Packaging with Visual Studio 2017 • 3rd party tools to create installers like: o InstallShield o Wix o Advanced Installer o RAD Studio for Delphi o InstallAware
  • 18. Desktop App Converter and installers 18 • The Desktop App Converter is a command line tool based on a set of PowerShell scripts, which leverages the Container feature added in the Anniversary Update • It’s available from the Store: https://aka.ms/converter • It requires a base image that matches your current Windows build, that can be downloaded from https://aka.ms/converterimages • You need the Windows 10 SDK installed: https://go.microsoft.com/fwlink/?linkid=821375
  • 19. Sample DAC command DesktopAppConverter -Installer "FlightTracker.msi" -Destination "C:FlightTracker-AppX" -PackageName "FlightTracker" -Publisher "CN=AppConsult" -Version "1.0.0.0" -MakeAppx -Sign -Verbose
  • 20. Installer requirements • If it’s a MSI installer, DAC is able to handle it automatically • If it’s made with another technology, it must support silent installation and you need to specify the parameter to trigger it using -InstallerArguments DesktopAppConverter -Installer "FlightTracker-Setup.exe" -InstallerArguments "/S" -Destination "C:FlightTracker-AppX" -PackageName "FlightTracker" -Publisher "CN=AppConsult" -Version "1.0.0.0" -MakeAppx -Sign -Verbose
  • 21. Dealing with the CPU architecture • By default, if the app isn’t compiled for a specific CPU architecture, the DAC will generate a x64 package • If you don’t need to address such a big memory space, it’s better to generate a x86 package (or even better, both) to reach a broader range of devices DesktopAppConverter -Installer "FlightTracker.msi" -PackageArch "x86" -Destination "C:FlightTracker-AppX" -PackageName "FlightTracker" -Publisher "CN=AppConsult" -Version "1.0.0.0" -MakeAppx -Sign -Verbose
  • 22. What you get as output? A folder with the app package version of your desktop app • The app manifest • Virtual file system • Binary registry file • Assets • Resources for Windows 10 scaling support
  • 24. DAC and manual conversion • The Desktop App Converter can convert also a standalone application stored in a folder (executable with its dependencies) • In this case, the Base Image and the Windows Container feature aren’t required • The output is the same as when you use the DAC with a traditional installer, except for the binary registry file and the virtual file system folder
  • 25. Sample manual DAC command DesktopAppConverter -Installer "C:FlightTracker" -Destination "C:FlightTracker-AppX" -AppExecutable "FlightTracker.exe" -PackageName "FlightTracker" -Publisher "CN=AppConsult" -Version "1.0.0.0" -MakeAppx -Sign -Verbose
  • 26. Demo: Desktop App Converter with a MSI installer
  • 28. Keep a converted project up-to-date • Typically, the Desktop App Converter is executed just once and it’s the starting point of the process • You leverage the output folder and reiterate on it every time you need to release a new update with some changes, like: o An updated executable o One or multiples updated or added DLLs o One or multiples updated or added images or assets o New extensions declared in the manifest • Exception: if you have updated the installer to add new registry keys, 3rd party dependencies, expose COM objects, etc. you need to run DAC again to capture all the changes
  • 29. MakeAppX • MakeAppX is a command line tool included in the Windows 10 SDK that can generate an app package starting from the output of the DAC • With the –MakeAppX parameter, the DAC can generate the package automatically as output of the process • You can manually generate the package starting from the output folder of the DAC every time you make some changes makeappx pack –d "PackageFiles" –p "MyApp.appx" -l
  • 30. SignTool • If you want to deploy your app manually or in an enterprise environment, the app must be signed with a trusted certificate • It can either be a certificate purchase from a certification authority or a self- generated certificated trusted by all the devices in your company • If you want to publish the app on the Windows Store or Windows Store for Business, you don’t need to sign it • For testing purposes, you can use the –Sign parameter with the DAC to generate a testing certificate and an already signed app package • If you have manually generated the package, you can use a command line tool called SignTool included in the Windows 10 SDK to sign the AppX
  • 31. Verify the package • If you are on the Anniversary Update, don’t use the Windows App Certification Kit (WACK) to certify a converted app, since it doesn’t support them • If you are on the Creators Update and you have installed the matching SDK, WACK properly support testing and identifying potential issues in a converted desktop app
  • 32. Demo: The WACK report
  • 33. Other conversion options • If you have already an installer for your application created with any of these tools, you can export an app package directly without using the Desktop App Converter: oInstallShield oWix oAdvanced Installer oRAD Studio oInstallAware
  • 34. Demo: Exporting an app package using Advanced Installer by Caphyion
  • 35. Migrate at your own pace app
  • 37. Enhance • You can start to leverage some specific Windows 10 features • New generation’s UWP APIs to perform tasks like sending notifications, updating the live tile or leverage speech services. • Keep customers engaged and prompt them to return to the app thanks to the new features
  • 38. Supported UWP APIs • Converted desktop apps can use a wide range of Universal Windows Platform (UWP) APIs, even if they have not fully transitioned to a UWP app • Some UWP APIs available to full desktop applications are not supported for converted apps. If your desktop application used UWP APIs before conversion, you should verify those APIs are still supported. • Supported API’s o You can view APIs newly supported in converted apps or APIs supported in both converted apps and desktop applications at https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-supported- api#new
  • 39. Welcome Visual Studio 2017! You can add to your existing desktop solution a JavaScript project which will help you to: • Generate the app packages • Edit the manifest using the visual editor • Generate assets for all the supported Windows scaling factors Desktop Bridge Debugging Project: a Visual Studio extension to launch and debug a desktop as converted https://aka.ms/bridgedebugging
  • 40. Desktop Bridge Helpers • Goal: keep the same code base both for the converted and the native app • Open source library based on a C++ method exposed by the Windows kernel which checks if the app has an identity • It can detect if the app is running as converted or as native https://aka.ms/bridgehelpers DesktopBridge.Helpers bridgeHelpers = new DesktopBridge.Helpers(); if (bridgeHelpers.IsRunningAsUwp()) { //show a toast notification }
  • 41. Demo: Enhancing a Windows Forms app to display a toast notification
  • 43. Demo: Expanding a Windows Forms app to use a background task
  • 45. Demo: a UWP app which invokes a Win32 process on desktop
  • 47. Demo: moving all your code to UWP