Er is een groot voordeel van het gebruik van de Windows Store als je .appx-applicaties in het Universal Windows Platform (UWP) hebt gebouwd. Ten eerste handel je daarmee updates automatisch af, zodat je niet je eigen updatecode hoeft te schrijven. Ook worden delta's ondersteund - alleen code die bijgewerkt is wordt bijgewerkt in plaats van de hele applicatie - waardoor downloads kleiner zijn.

Omzetten Win32

De Windows Store is geen geniepige manier van Microsoft om het bedrijf een deel van je opbrengst te geven, want je kunt .appx-installers rechtstreeks uitrollen naar gebruikers van Windows 10 en zelfs Windows 10 S (waarbij alleen programma's uit de Store worden toegestaan) of via beheertools van Intune, of het nu voor commerciële of interne distributie is bedoeld.

Die veranderde aanpak betekent overigens niet dat traditionele pc-applicaties (win32) niet kunnen draaien op Windows 10 S en je hoeft ze ook niet opnieuw te bouwen als UWP-apps. De Windows Desktop Bridge-tools kunnen de bestaande code gebruiken en herpakken als een UWP-applicatie om naar Windows 10 (en Store-only Windows 10 S) uit te rollen.

Simpel of handmatig

Microsoft heeft een serie van dit soort koppelprogramma's uit te maken om te porten naar andere platforms en UWP-API's. De Desktop Bridge is er eentje om Win32-programma's klaar te maken voor distributie via de Windows Store.

Je kunt het zo makkelijk maken als de code in de Desktop Converter te stoppen en zo complex als UWP-API's in te voegen in de eigen code als onderdeel van een hele platform-migratie. Met de Desktop Bridge kun je het complexer maken, maar je moet dat niet zien als een slechte zaak. Je krijgt er namelijk betere, sterker beveiligde apps voor terug.

Betere security

Met een Windows Store-installatie kun je het programma digitaal ondertekenen om het alleen op een Windows 10 S-pc te kunnen installeren. De Windows Store-installatie maakt ook gebruik van de applicatiebeveiligingsmiddelen van nieuwe Windows-versies. UWP-apps houden applicatiedata via een virtueel register en sandbox gescheiden van het systeem. Het is een heel andere manier van werken vergeleken met de traditionele aanpak waarin programma's volledige toegang hadden tot het systeem.

Met de Desktop App Converter kom je al een heel stuk dichter bij betere beveiliging, maar niet honderd procent. Het is beter om je applicatie te refactoren naar UWP-versies. In de tussentijd kun je verschillende Desktop Bridge-tools gebruiken om gefaseerd over te stappen.

Opbouwen

Je begint de conversie met het downloaden van de Desktop App Converter. Het is strikt genomen overigens geen converter (zo verandert het je code niet) maar doorloopt de stappen om je applicatie voor te bereiden op de Windows Store. Vanaf een bestaand installatiebestand maakt het de benodigde handlers, mapverwijzingen, COM-servers en certificaten aan die nodig zijn om een installatiepakket te draaien. Het voert ook een verificatietest uit die aangeeft welke wijzigingen je moet doorvoeren om een app te laten draaien in de strakker beperkte Windows Store-app-omgeving.

Andere opties zijn het handmatig opbouwen van .appx-bestanden, wat essentieel is als je Xcopy gebruikt in plaats van een installer en Windows Store-installaties bouwt in Visual Studio. Als je nog steeds toegang hebt tot de broncode is dit de moeite waard, omdat het een eerste stap is om eem app van Win32 naar UWP om te zetten.

Isolatie

Je bent met het daadwerkelijke omzetten van code niet beperkt tot de tools van Microsoft, omdat er nu diverse third party-opties zijn die werken met de Desktop App Converter. Desktop-applicaties die je converteert draaien overigens niet in een sandbox, dus ze zijn minder beveiligd dan een volledige UWP-app. Ze isoleren wel enkele belangrijke features:

  • Een kopie van de AppData-map - waar alle lees- en schrijfacties op worden uitgevoerd - zorgt voor de afhandeling van de applicatiestaat.
  • Bestanden en mappen die standaard Windows-mappen zouden zijn geweest, worden in een virtueel bestandssysteem verwerkt. Calls van de applicatie worden doorverwezen naar de eigen bestand- en mapkopieën van de app.
  • Ook het register wordt op die manier afgehandeld: een lokaal bestand bevast de applicatie-eigen keys en een gevirtualiseerde kopie van de rest van het register verwerkt de schrijfbewerkingen van de applicatie.
  • Als je een geconverteerde app verwijdert, worden ook gekoppelde virtuele bestanden en registers gewist, wat opruimen erg simpel maakt.

Het resultaat is een beter beveiligde app die niet inbreekt bij andere applicaties met verschillende library's of veranderingen in het register. Het is niet zo goed als het draaien van het programma in een geïsoleerde sandbox, maar is een verbetering ten opzichte van de onbeperkte toegang van vroegere Windows-applicaties.

Naar UWP

De Desktop Bridge is meer dan een Windows Store-wrapper voor oudere programma's. Het heeft tools om UWP-API's te callen vanuit bestaande Win32-code in Visual Studio en voegt ondersteuning toe voor diverse Windows 10-features waaronder de Live Tiles. Als je verdergaat dan de Desktop App Converter, kun je Visual Studio gebruiken om code naar het Windows 10-platform te migreren en uiteindelijk een volledige UWP-app via de Windows Store te leveren.

In veel gevallen hoef je niet eens code te schrijven om Windows 10-integratie toe te voegen. In plaats daarvan kun je XML-configuratiebestanden gebruiken om te bepalen hoe Desktop Bridge features toevoegt. Met XML-bestanden kun je bestandsassociaties definiëren, firewallregels baststelen en de applicatiestart configureren. Andere opties zijn diepere integratie met de Verkenner van Windows 10, inclusief de optie om previews te geven van geëmbedde documenten.

Beperkingen

Maar er zijn enkele belangrijke beperkingen als je een Win32-app aan UWP-API's koppelt: je kunt geen gebruik maken van de authenticatie-features van Windows 10 of de ingebouwde productiviteits-API's. Dat zou in de praktijk geen groot issue moeten zijn, omdat de meeste oude code standalone is en geen toegang nodig heeft tot deze features.

Voor veel bestaande applicaties is het niet praktisch om naar een volledige UWP-app over te stappen en daarom is de Desktop Bridge een prima tussentijdse oplossing. Je krijgt toegang tot veel Windows 10-features zonder dat je nieuwe code hoeft te schrijven en een plan om je app gefaseerd bij te werken. Het is niet perfect, maar goed genoeg om voordeel te halen uit de aanpak van Windows 10 S en de Windows Store.