What's new in Windows 10 for developers, build 14393

Windows 10 build 14939 (also known as the Anniversary Update or version 1607), in combination with Visual Studio 2017 and the updated SDK, provide the tools, features, and experiences to make remarkable Universal Windows Platform apps. Install the tools and SDK on Windows 10 and you’re ready to either create a new Universal Windows app or explore how you can use your existing app code on Windows.

This is a list of new and improved features of interest to developers. For a raw list of new namespaces added to the Windows SDK, see the Windows 10 build 14393 API changes. For more information on the highlighted features of this update, see What's cool in Windows 10.

Windows 10 build 14393 - July 2016

Feature Description
Access keys for XAML elements You can use the new AccessKey property and the AccessKeyManager to improve keyboard accessibility in your app.
Animated GIF support The XAML Image element now supports animated GIFs. You can use these new members on BitmapImage to control playback: AutoPlay, IsAnimatedBitmap, IsPlaying, Play, Stop.
App extensibility Write extensions for your UWP apps. Enable your UWP app to host content provided by other UWP apps. Discover, enumerate, and access read-only content from those apps.
Assessment testing Take a Test is a browser based app that renders locked down online assessments for high-stakes testing. Use the Take a Test APIs to prevent students from using other computer or Internet resources during a test.
Background Intelligent Transfer Service (BITS) It is now possible to use the BITS COM APIs and PowerShell cmdlets (where available) in a PowerShell Remote Session. This is especially useful when administrating versions of Windows Server 2016 Technical Preview that have no local login capability. BITS jobs started via PowerShell Remote Sessions run in the session's user account context, and will only make progress when there is at least on active local logon session or PowerShell Remote session associated with that user account. See To manage PowerShell Remote sessions for details on how to manage sessions for long-running transfers.

In previous versions of Windows that supported BITS helper tokens, the job owner effectively had to have administrator privileges in order to set a helper token. In this release, it is now possible for a BITS job owner to set helper tokens without being an administrator, as long as the helper token does not have administrator capabilities. This reduces the vulnerability footprint of background download or update tools by enabling them to run under the lower-privileged NetworkService account rather than under an account with administrative privileges.
Improved support for color fonts Direct2D now supports rendering a wider variety of color font formats, allowing developers to use more types of fonts in their Direct2D-powered apps than ever before. This includes support for:
• 'sbix' OpenType table, which enables color bitmap content in fonts.
• 'SVG ' OpenType table, which enables SVG content in fonts.
• 'CBDT' OpenType table, which enables color bitmap content in fonts.

Direct2D supports these color font formats automatically when the D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT flag is enabled. For more information, see the following topics:
ID2D1DeviceContext4
D2D1_DRAW_TEXT_OPTIONS
ID2D1SvgGlyphStyle
CommandBar dynamic overflow Primary commands in a Commandbar will now automatically move to the overflow menu when there’s not enough space to show them all.
Composition interactions API The new Windows.UI.Composition.Interactions namespace allows you to access input to drive animations and effects. This new API family in the Visual Layer will help your app feel responsive and smooth even when your UI thread is bogged down and busy.
Windows.UI.Composition The Windows.UI.Composition namespace has added support for many features including:

• Shadows - Allows you to provide a real world depth experience to your app
• Scene lighting - Allows you to give more perspective to your controls and UI by shining a light source on them and providing a different effect for your application
• Blur effect - Lets you keep the right information in focus and blur out others. You can animate blurring of UI giving them a livelier feel.
• Implicit Animations - Implicit animations help you to animate visuals when properties change on visuals. You can use implicit animations to perform layout animations i.e. when layout for app changes you can animate them to their new location.
• CompositionBackdropBrush - CompositionBackdropBrush is a new brush type that can be used to select the current RenderTarget as input to an effect.
• LayerVisual - Allows you to apply an effect to a collection of visuals. For example, to greyscale part of a UI to indicate a disable portion of the UI
• CompositionMashBrush - Allows you to specify an opacity mask
• Clip transforms - Allows transforms to be applied to clip rectangles
• Surface brush transforms - Enables transformations to be applied to CompositionSurfaceBrush
• CompositionNineGridBrush - Allows you to specify nine-grid resizing insets on an image, or to create rectangular solid-color borders.
• Expression string additions - Expression strings have support for new functions, expression operators, and keywords.
Connected Animations The ConnectedAnimationService lets you run animations while the user is moving between scenes or pages. See this Connected Animations video for more info.
Connected apps Discover cloud-connected or nearby devices and build experiences that seamlessly transition between them. See Connected apps and devices for details.
Desktop app converter The Desktop app converter is a tool that enables you to bring your existing desktop apps written for .NET 4.6.1 or Win32 to the Universal Windows Platform (UWP).
Developing apps for accessibility Use the app accessibility guidelines to design inclusive software for improved usability and customer satisfaction. Get inspired by stories of accessible technology products. Find information about making your apps accessible to everyone on this new developer hub.
Direct3D Many new topics have been added to the Direct 3D documentation. For more information on these updates, see Windows 10, version 1607 in the Direct3D 12 New Releases page.
Gaming - arcade stick and racing wheel support Windows.Gaming.Input supports two new classes of input device: arcade sticks and racing wheels. This allows titles to support arcade stick and racing wheel devices as a class of device without having to write code specific to individual versions of those devices. This supports all Xbox 360 and Xbox One devices of those classes and selected PC (HID) devices.
Gaming - force feedback support The Windows.Gaming.Input.ForceFeedback API provides support for controlling force feedback of PC (HID) racing wheels.
Gaming - OEM support for custom WinRT class libraries for new input devices The Windows.Gaming.Input.Custom API provides support for 3rd party accessory OEMs to write custom WinRT class libraries for their Xbox 360 and Xbox One accessories.
Globalization Classes in the new Windows.Globalization.PhoneNumberFormatting namespace support formatting, validating, and matching of phone numbers with wide global support. The new classes support many local standard formats, and even support providing incremental formatting of partial numbers as they are input.
In-app purchases and app licenses The System.Services.Store namespace provides a new API for performing in-app purchases and accessing Store license info for your app. For more information, see Enable in-app product purchases.
InkToolbar InkToolbar is a Universal Windows app control containing a customizable and extensible collection of buttons that activate ink-related features in an associated InkCanvas.

By default, the toolbar includes buttons for drawing, erasing, highlighting, and displaying a ruler. Depending on the feature, other settings and commands, such as ink color, stroke thickness, erase all, are provided in a flyout.

The InkToolbar can also be customized with your own pens, tools, and other inking features.
MAX_PATH limitations removed MAX_PATH limitations have been removed from common Win32 file and directory APIs. The behavior is opt-in. Details in the Maximum Path Length Limitation section of Naming Files, Paths, and Namespaces.
Camera - Media Frame Reader The new Windows.Media.Capture.Frames namespace provides APIs for reading media frames from one or more available sources, including color, depth, and infrared cameras, audio devices, or even custom frame sources such as those that produce skeletal tracking frames. This feature is designed to be used by apps that perform real-time processing of media frames, such as augmented reality and depth-aware camera apps.
Media Playback The recommended way of playing back media in an app is to use the MediaPlayer class, using the lightweight MediaPlayerElement class to render media in XAML if desired. Improvements to the MediaPlayer class include the ability to play audio to a specific endpoint, the introduction of the MediaPlaybackSession class for managing player state, pinch and zoom for video, the ability to render video to a Windows.UI.Composition surface, and the MediaTimelineController class for synchronizing playback of multiple media players.
When opening media items using MediaSource, you can now detect media failures due fully or partially unsupported codecs.

The new MediaBreakManager class to quickly and easy add media breaks to any MediaPlaybackItem class allows you to easily create, schedule, and manage media breaks such as audio and video ads.

The MediaPlayer class now gets automatic integration into the System Media Transport Controls (SMTC). The new MediaPlaybackCommandManager class allows you to partially or completely override SMTC commands.

You can now play media in the background using the new one-process model, which is much simpler and easier to implement than the previous two-process model. A new manifest capability lets you tell the system that your app needs to play media in the background, and new app lifecycle events, EnteredBackground and LeavingBackground, give you an opportunity to free up unused resources while running in the background.
Microsoft Edge Microsoft Edge adds support for the Fetch, Streams, and Beacon APIs. Fetch is the modern day replacement for XMLHttpRequests, adding lower level capabilities for requests and responses. Also added is the ability to stream data sources. Streams enables reading chunks of data from sources as opposed to buffering the entire source before being able to read from it. The Beacon API allows for an efficient way to send information such as critical application and measurement information to a server via beacons(one-way requests). The Beacon API is fully asynchronous and does not need to process a request, thus making it a non-blocking request.

For more information on new APIs in Microsoft Edge, check out What's new in the Microsoft Edge Developer Guide.
New app lifecycle events Two new events have been added to the app lifecycle that make it easy to detect when your app moves in and out of visibility.
Single Process background activity Executing background code is much easier and no longer requires creating a background task. You can run code in the background as either a separate process or directly inside the foreground application. See Background activity with the Single Process Model for details.
Social extensibility and contact card APIs for the People app Integrate app-based messaging, voice calling, and video calling actions directly to contact cards. Use contact associations to provide social content into the People app's “What’s new” view.
StreamSocket Added new GetEndpointPairsAsync methods to StreamSocket that enable you to get a list of the endpoints that are returned by a DNS lookup for a particular service on a particular hostname. This is useful when the service is actually hosted on multiple servers, so your code can attempt to connect to more than one potential service provider, and use the first connection that is established.
Tiles & Notifications Badge notifications now appear in the taskbar.

New chaseable tile notifications let you determine what an app's Live Tile was displaying when clicked on by the user.

Use a hero image, adaptive content, attribution text, and context menu actions on your toast notifications.

The notification listener allows you to access all toast notifications, including notifications not from your own app.

Notification mirroring brings your phone's notifications to your desktop.

Universal Dismiss lets you link notifications across devices so when the user dismisses from one device, it's dismissed everywhere.
Text sorting Added new methods to Windows.Data.Text to support sorting text using phoneme sort order. This is primarily intended for use in sorting data such as proper names in the Japanese language, where it is important to sort names in phonetic order rather than in character code point order.
Text search in XAML ComboBox As a user types in a combo box, candidates matching the user's string are brought into view.
UI Automation UI automation providers can now notify the system of changes to documents by calling the UiaRaiseChangesEvent function.
UWP on Xbox One This update features the first full release of the Universal Windows Platform (UWP) on Xbox One. It includes new features, updates to existing features, and bug fixes. See the UWP on Xbox One topic for more information.
Web to app linking Associate your app with a website. When users open a link to your website, your app is opened instead. See Support web-to-app linking with app Uri handlers for details.
WebSockets Added support to both MessageWebSockets and StreamWebSockets for viewing the server certificate, viewing intermediate certificates sent by the server during SSL negotiation, performing custom server certificate validation, and specifying that certain server certificate errors are to be ignored.
Windows Information Protection (WIP) APIs WIP is a set of features on desktops, laptops, tablets, and phones for Mobile Device Management (MDM). WIP gives enterprises greater control over how their data is handled on enterprise managed devices.

You can use WIP APIs to build apps that respect data policies while separating an employee’s personal data from being impacted by those policies. Policy administrators will trust your app to consume their organization's data. And employees will love that you've kept their personal data intact on their device even if they un-enroll from the organization's mobile device management (MDM) or leave the organization entirely.
Windows IOT Core Windows IoT Core now fully supports Raspberry Pi 3 as well as a remote display experience, allowing users to remotely view and control UWP applications running on an IoT Core device.
Windows Unlock with companion (IoT) devices A companion device is a device that can act in conjunction with your Windows 10 desktop to enhance the user authentication experience. Using the Companion Device Framework, a companion device can provide a rich experience for Microsoft Passport even when Windows Hello is not available (e.g., if the Windows 10 desktop lacks a camera for face authentication or fingerprint reader device, for example).
Winsock TCP sockets can now be configured with Winsock to use RFC 7413 TCP Fast Open by setting the TCP_FASTOPEN socket option.