The Creators Update is packed with new features for app developers and end users that are designed to delight developers who can offer their end users a rich experience.
User transition & data migration
Users are encouraged to download the store version of their desktop apps. If the user already has the previous desktop version of the app, the transition experience is as seamless as possible.
As a result, the Creators Update will provides a smooth transition along with some best practices for app developers to follow.
For a detailed blog post on this topic with code samples, please see this blog post.
User transition: taskbar pins & start tiles
Many users typically pin their favorite or most used apps to the taskbar pin or the start menu so they can access apps quickly.
With the Creators Update, app developers can re-route the taskbar pins and the start tile shortcuts to point to the store version of the desktop app.
User transition: file type associations & protocol handlers
The user may choose their favorite app to be the default app for a given file type or protocol. With the Creators Update, the developers can also transition the user’s choice to use the store version of the same app.
As best practice, it is recommended that developers attempt to migrate previous user data from the desktop app upon first launch of the store version of the same app.
Users will love that they can pick up where they left off.
User transition: uninstall previous desktop app
As best practice, developers should offer uninstallation of the previous desktop app upon first launch of the store version of the app. This helps in avoiding user confusion and potential user data corruption.
Keep in mind the user can refuse the uninstallation of the previous desktop app, so the previous and store version of the app may end up running side-by-side. It is up to the app developer to decide whether or not to block the launch of the store version of the app until the previous desktop app is uninstalled.
Windows Explorer delight: previews, thumbnails, detailed properties and grouping by kind
Another focus of the Creators Update release was on user satisfaction.
Store versions of desktop apps can now take advantage of Windows Explorer perks to lead users to more frequently engage with their apps.
Preview handlers are triggered when an item is selected to show a lightweight, rich, read-only preview of the file’s contents in the view’s reading pane. You can do this without launching the file’s associated application.
<Extensions> <Extension Category="windows.fileTypeAssociation"> <FileTypeAssociation Name="Foo"> <SupportedFileTypes> <FileType>.bar</FileType> </SupportedFileTypes> <DesktopPreviewHandler CLSID="20000000-0000-0000-0000-000000000001" /> </FileTypeAssociation> </Extension> </Extensions>
In Windows Explorer, thumbnails can provide a read-only view inside the file when the viewing is set to medium icons or higher.
<Extensions> <Extension Category="windows.fileTypeAssociation"> <FileTypeAssociation Name="Foo"> <SupportedFileTypes> <FileType>.bar</FileType> </SupportedFileTypes> <ThumbnailHandler CLSID="20000000-0000-0000-0000-000000000001" Cutoff="20x20" Treatment="Video Sprockets" /> </FileTypeAssociation> </Extension> </Extensions>
Microsoft Windows Search uses property handlers to extract the values of properties from items, and uses the property system schema to determine how a specific property should be indexed. In addition, property handlers can be used to provide more details about a certain file in the properties dialog or in the details pane.
<Extensions> <Extension Category="windows.fileTypeAssociation"> <FileTypeAssociation Name="Foo"> <SupportedFileTypes> <FileType>.bar</FileType> </SupportedFileTypes> <DesktopPropertyHandler CLSID="20000000-0000-0000-0000-000000000001" /> </FileTypeAssociation> </Extension> </Extensions>
Grouping files by their ‘kind’
Developers can specify what ‘kind’ their file types are, which will enable the end users to group their files by their ‘kind’ in Windows Explorer.
<uap:Extension Category="windows.fileTypeAssociation"> <uap:FileTypeAssociation Name="scoobydoo"> <uap:SupportedFileTypes> <uap:FileType>.m4a</uap:FileType> <uap:FileType>.mta</uap:FileType> </uap:SupportedFileTypes> <rescap:KindMap> <rescap:Kind value="Item" /> <rescap:Kind value="Communications" /> <rescap:Kind value="Task" /> </rescap:KindMap> </uap:FileTypeAssociation> </uap:Extension>
Support for custom fonts installation by apps
Microsoft Windows Store apps can share their custom fonts with other Windows applications. This is done by making a few simple edits to the application manifest.
<Extensions> <uap4:Extension Category="windows.sharedFonts"> <uap4:SharedFonts> <uap4:Font File="Fonts\JustRealize.ttf" /> <uap4:Font File="Fonts\JustRealizeBold.ttf" /> </uap4:SharedFonts> </uap4:Extension> </Extensions>
Public out-of-process COM server support, aka Packaged COM
Developers can now add support for out-of-process COM and OLE extensions support for store version of desktop apps. This technology is referred to as Packaged COM. Historically, desktop apps created COM extensions that other applications could use. However, in the Windows 10 Anniversary Update release of Desktop Bridge, an application cannot expose its COM extension points as all registry entries are in its private hive and not exposed publicly to the system. Packaged COM provides a mechanism for COM and OLE entries to be declared in the manifest while the underlying subsystem handles the activation of the objects while still providing no-impact install behavior.
When apps need the users to add the app as an exception to the firewall, it translates into user confusion, additional user clicks and/or denial of exception by mistake.
The Windows Security Alert tries to educate the user, but it’s still one more decision the user must make before they can use their app.
In addition, subsequent app updates will result in the same dialog pop up and take the user through the same flow.
With the Creators Update, the developers can register for firewall rules ahead of time, so the users don’t have to make a firewall choice prior to launching their apps (including after subsequent app updates).
<Extensions> <desktop2:Extension Category="windows.firewallRules"> <desktop2:FirewallRules Executable="foo.exe"> <desktop2:Rule Direction="in" IPProtocol="TCP" Profile="all"/> <desktop2:Rule Direction="in" IPProtocol="UDP" LocalPortMin="1337" LocalPortMax="1338" Profile="domain"/> <desktop2:Rule Direction="in" IPProtocol="UDP" LocalPortMin="1337" LocalPortMax="1338" Profile="public"/> <desktop2:Rule Direction="out" IPProtocol="UDP" LocalPortMin="1339" LocalPortMax="1340" RemotePortMin="15" RemotePortMax="19" Profile="domainAndPrivate"/> <desktop2:Rule Direction="out" IPProtocol="GRE" Profile="private"/> </desktop2:FirewallRules> </desktop2:Extension> </Extensions>
Other noteworthy features
- Apps can be pre-installed
- Messaging Application Programming Interface (MAPI) support
- Windows App Certification Kit now includes test cases for Desktop Bridge apps
- Use URL flag enables apps to directly open files from a URL instead of downloading a local cached version of the file