What’s new for developers in Windows 10

The Windows 10 Insider Preview and developer tools provide an early look at the tools and features that support the Universal Windows Platform. See how your apps can take advantage of new Windows capabilities and social integration to create experiences that delight your customers, whether they’re running on a phone, tablet, or PC.

After installing the tools and SDK on the Windows Insider Preview, you’re ready to either create a new universal Windows app project or explore how you can use your existing app code on Windows.

Multiple device types running Windows 10

Get ready for Windows 10

Kevin Gallo gives a first look at the Windows 10 developer platform strategy and Universal Windows Platform. Check out Kevin's video on building a universal Windows app.

Screenshot of Visual Studio 2015

Universal Windows Platform guide

Find out how the Universal Windows Platform uses adaptive UI controls for different device types and a common API set that's guaranteed to be present on all devices that run Windows 10.

Xbox on Windows 10 devices

Games on Windows 10

Learn how gamers will be able to connect and play—games, friends, and achievements follow players across their Windows devices.

Application model
Back to top

Extend the basic functionality of Cortana with voice commands that launch and execute a single action in an external application.

By integrating the basic functionality of your app, and by providing a central entry point for the user to accomplish most of the tasks without opening your app directly, Cortana can act as a liaison between your app and the user. In many cases, this can save the user significant time and effort.

Learn how to integrate your app into the Cortana canvas. If you need ideas you can refer to the design recommendations and UX guidelines specific to Cortana in Design basics for Universal Windows apps.

File Explorer

The new Windows.System.Launcher.LaunchFolderAsync methods let you launch File Explorer and displays the contents of a folder that you specify.

Shared storage

The new Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager class and its methods let you share a file with another app by passing a sharing token when you launch the other app by using URI activation. The target app redeems the token to get the file shared by the source app.


Display built-in settings pages by using the ms-settings protocol with the LaunchUriAsync method. For example, the following code displays the page of Wi-Fi settings.

bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings://network/wifi"));

For a list of the settings pages that you can display, see How to display built-in settings pages by using the ms-settings protocol.

App-to-App communication

New app-to-app communication APIs in Windows 10 make it possible for Windows applications (as well as Windows Web applications) to launch each other and exchange data and files.

Using these new APIs, complex tasks that would have required the user to use multiple applications can now be handled seamlessly. For example, your app could launch a social networking app to choose a contact, or launch a checkout application to complete a payment process.

App services

An app service is a way for an app to provide services to other apps in Windows 10. An app service takes the form of a background task. Foreground apps can call an app service in another app to perform tasks in the background. For reference information about the app service API, see Windows.ApplicationModel.AppService.

App package manifest

Updates to the package manifest schema reference for Windows 10 include elements that have been added, removed, and changed.

See Element Hierarchy for reference info on all elements, attributes, and types in the schema.

Back to top

WebView updates

Several new APIs and events round out support for the HTML WebView control, including:

Client-side data validation for user input

New XAML control properties let you collect and show data-validation errors. You can add, remove, or clear the ValidationErrors collection on a control. When the ValidationErrors count becomes nonzero, the read-only ValidationState property changes and the control displays a validation error indicator.

Use the default indicator style, or customize the data validation indicator by overriding the ValidationIndicatorStyle property with a custom style. Alternatively, you can set the IsValidationIndicatorEnabled property to enable or disable the indicator.

Windows core text APIs

The new Windows.UI.Core.Text namespace features a client-server system that centralizes the processing of keyboard input into a single server.

You can use it to manipulate the edit buffer of your custom text input control. The text input server ensures that the contents of your text input control and the contents of its own edit buffer are always in sync, via an asynchronous communication channel between the app and the server.

Input updates

It’s now simpler to use the robust inking functionality in Windows Runtime apps using C++, C#, or Visual Basic, thanks to the InkCanvas control and underlying InkPresenter classes.

The InkCanvas control defines an overlay area for drawing and rendering ink strokes. The functionality for this control (input, processing, and rendering) comes from the InkPresenter, InkStroke, InkRecognizers, and InkSynchronizer classes.

ImportantThese classes are not supported in Windows apps using JavaScript.

Speech recognition Continuous speech recognition for long-form dictation scenarios is now supported by the Universal Windows Platform. See how to enable continuous dictation in the Speech interaction docs.


The MapControl class been updated to provide aerial 3D imagery and street-level views. These new features and earlier mapping functionality are now available to universal Windows apps. Add mapping to your app with the following APIs:

To start using these APIs in a Universal Windows app today, request a key from the Bing Maps Developer Center. For more info, see How to authenticate a Maps app. Also new for Windows 10 Insider Preview, PC and phone users can download offline maps from the Settings app. When available, offline maps are used by the MapControl to display maps when no internet access is available.

Input button mapping

The Windows.UI.Xaml.Input.KeyEventArgs class has a new OriginalKey property that, along with a corresponding update to Windows.System.VirtualKey, enables you to get the original, unmapped input button associated with the keyboard input event.

Back to top
Microsoft Surface Hub

The Microsoft Surface Hub is a powerful team collaboration device and a large-screen platform for Universal Windows apps that run natively from Surface Hub or from your connected device.

Universal Windows apps
Build your own apps, designed specifically for your business, that take advantage of the large screen, touch and ink input, and extensive onboard hardware like cameras and sensors.

Have a look at the design recommendations and UX guidelines specific to Surface Hub in Design basics for Universal Windows apps. These docs explain responsive design techniques for Universal Windows apps.


Windows Insider Preview introduces a new method to prompt the user for permission to access their location, RequestAccessAsync.

The user sets the privacy of their location data with the location privacy settings in the Settings app. Your app can access the user's location only when:

  • Location for this device is turned on (not applicable for Windows Insider Preview for phones)
  • The location services setting “Location” is on
  • Under Choose apps that can use your location, your app is set to on

It's important to call RequestAccessAsync before accessing the user’s location. At that time, your app must be in the foreground and RequestAccessAsync must be called from the UI thread. Until the user grants your app permission to their location, your app can't access location data.


The Windows.Devices.AllJoyn Windows Runtime namespace introduces Microsoft's implementation of the AllJoyn open source software framework and services. These APIs make it possible for your universal Windows device app to participate with other devices in AllJoyn-driven, Internet of Things (IoT) scenarios. For more details about the AllJoyn C APIs, download the documentation at The AllSeen Alliance.

Use the AllJoynCodeGen tool included in this release to generate a Windows component that you can use to enable AllJoyn scenarios in your device app.

Note: Windows 10 IoT Core is now available for a new class of small devices, allowing you to create “Internet of Things” (IoT) devices using Windows and Visual Studio. Learn more about Windows IoT at WindowsOnDevices.com


The battery APIs in the Windows.Devices.Power namespace let your app learn more about any batteries that are connected to the device that’s running your app.

  • Create a Battery object to represent an individual battery controller or an aggregate of all battery controllers (when created by FromIdAsync or AggregateBattery, respectively).
  • Use the GetReport method to return a BatteryReport object that indicates the charge, capacity, and status of the corresponding batteries.

MIDI devices

The new Windows.Devices.Midi namespace lets you create:

  • Apps that can communicate with external MIDI devices.
  • Apps and external devices that directly communicate with the Microsoft GS MIDI software synthesizer.
  • Scenarios where multiple clients simultaneously access a single MIDI port.

Custom sensor support

The Windows.Devices.Sensors.Custom namespace allows hardware developers to define new custom sensor types, like a CO2 sensor.

Host-based Card Emulation (HCE)

Host card emulation enables you to implement NFC card emulation services hosted in the OS and still be able to communicate with the external reader terminal via NFC radio.

Implement a background task to emulate a smartcard via NFC. To trigger the background task, use the SmartCardTrigger class.

The EmulatorHostApplicationActivated value in the SmartCardTriggerType enum lets your app know that an HCE event has occurred.

Graphics and games
Back to top


DirectX 12 in Windows 10 Insider Preview introduces the next version of Microsoft Direct3D, the 3D graphics API at the heart of DirectX. Direct3D 12 Graphics enables the efficiency and performance of a low-level, console-like API. Direct3D 12 is faster and more efficient than ever before. It enables richer scenes, more objects, more complex effects, and better use of modern graphics hardware.

Back to top

HTTP Live Streaming

You can use the new AdaptiveMediaSource class to add adaptive video streaming capabilities to your apps. The object is initialized by pointing it to a streaming manifest file. Supported manifest formats include Http Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH). Once the object is bound to a XAML media element, adaptive playback begins. Properties of the stream, such as the available, minimum, and maximum bitrates, can be queried and set where appropriate.

Media Foundation Transcode Video Processor (XVP) support for Media Foundation Transforms (MFTs)

Windows apps that use Media Foundation Transforms (MFTs) can now use the Media Foundation Transcode Video Processor (XVP) to convert, scale, and transform raw video data:

  • The new MF_XVP_CALLER_ALLOCATES_OUTPUT attribute enables the output to caller-allocated textures even in Microsoft DirectX Video Acceleration (DXVA) mode.
  • The new IMFVideoProcessorControl2 interface lets your app enable hardware effects, query for supported hardware effects, and override the rotation operation performed by the video processor.


The new MediaProcessingTrigger API lets your app perform media transcoding in a background task, so your transcoding operations can continue even when your foreground app has been terminated.


Windows 10, the MediaElement will play content containing multiple streams even if there’s an error decoding one of the streams, as long as the media content contains at least one valid stream. For example, if the video stream in a content containing an audio and a video stream fails, the MediaElement will still play the audio stream. The PartialMediaFailureDetected notifies you that one of the streams within a stream could not be decoded. It also lets you know what type of stream failed so that you can reflect that info in your UI. If all of the streams within a media stream fail, the MediaFailed event is raised.

Media transport controls for desktop apps

The ISystemMediaTransportControls interface and related APIs allow desktop apps to interact with the built-in system media transport controls. This includes responding to user interactions with the transport control buttons, and updating the transport controls display to show metadata about currently playing media content.

Random-access JPEG encoding and decoding

New WIC methods IWICJpegFrameEncode and IWICJpegFrameDecode enable the encoding and decoding of JPEG images. You can also now enable indexing of the image data, which provides efficient random access to large images at the expense of a larger memory footprint.

Overlays for media compositions

The new MediaOverlay and MediaOverlayLayer APIs make it easy to add multiple layers of static or dynamic media content to a media composition. Opacity, position, and timing can be adjusted for each layer, and you can even implement your own custom compositor for input layers.

New effects framework

The Windows.Media.Effects namespace provides a simple and intuitive framework for adding effects to audio and video streams. The framework includes basic interfaces that you can implement to create custom audio and video effects and insert them into the media pipeline.

Back to top


Socket updates include:

  • Socket broker. The socket broker can establish and close socket connections on behalf of an app in any state of the app lifecycle. This makes apps and the services that they provide more discoverable. For example, by way of the socket broker, a Win32 service can still accept incoming socket connections even when it’s not running.
  • Throughput improvements. Socket throughput has been optimized for apps that use the Windows.Networking.Sockets namespace.

Background Transfer post-processing tasks

New APIs in the Windows.Networking.BackgroundTransfer namespace let you to register groups of post-processing tasks. So your app can act on the success or failure of background transfers immediately, even if it’s not in the foreground, instead of waiting for the next time the user resumes the app.

Bluetooth support for advertisements

With the Windows.Devices.Bluetooth.Advertisement namespace, your apps can send, receive, and filter Bluetooth LE advertisements.

Wi-Fi Direct API update

The device broker is updated to enable pairing with devices without leaving the app. Additions to the Windows.Devices.WiFiDirect namespace also let a device make itself discoverable to other devices, and let it listen for incoming connection notifications.

Note In this release, the Wi-Fi Direct feature improvements are not built into the UX, and they support only push-button pairing. Also, this release supports only one active connection.

JSON support improvements

The Windows.Data.Json namespace now better supports existing standard definitions and the developer experience when converting JSON objects during debug sessions.

Back to top

ECC encryption

New APIs in the Windows.Security.Cryptography namespace provide support for Elliptical Curve Cryptography (ECC), a public-key cryptography implementation based on elliptical curves over finite fields. ECC is mathematically more complex than RSA, provides smaller key sizes, reduces memory consumption, and improves performance. It offers Microsoft services and customers an alternative to RSA keys and NIST-approved curve parameters.

Microsoft Passport

Microsoft Passport is an alternative method of authentication that replaces passwords with asymmetric cryptography and a gesture. Classes in the Credentials namespace, such as KeyCredentialManger, make it easy for developers to create application using Microsoft Passport without the complexity of cryptography or biometrics.

Microsoft Passport for Work

Microsoft Passport for Work is an alternative method for signing in Windows using your Azure Active Directory account that does not use passwords, smart card, and Virtual Smart Cards. You can choose whether to disable or enable this policy setting.

Token Broker

Token Broker is a new authentication framework that makes it easier for apps to connect to online identity providers (like Facebook). Features such as account username and password management and a streamlined UI provide a greatly improved authentication experience for users.

System services
Back to top


Your Windows desktop application can now be notified when battery saver is engaged or disengaged. By responding to changing power conditions, your application has the opportunity to help extend battery life.


You can use the Version Helper functions to determine the version of the operating system. For Windows 10, these helper functions include a new function, IsWindows10OrGreater. You should use the helper functions rather than the deprecated GetVersionEx and GetVersion functions when you want to determine the system version. For more information about how to get the system version, see Getting the System Version.

If you do use the deprecated GetVersionEx or GetVersion function to get version information in an OSVERSIONINFOEX or OSVERSIONINFO structure, be aware that the version number that these structures contain increases from 6.3 for Windows 8.1 and Windows Server 2012 R2 to 10.0 for Windows 10 Insider Preview. For more information about version numbers for the operating system, see Operating System Version.

You also need to specifically target Windows 8.1 or Windows 10 in your application to get the correct version information for these versions with the GetVersionEx or GetVersion function. For information about how to target your application for these versions of Windows, see Targeting your application for Windows.

User information

New APIs in the Windows.System namespace make it easy to access information about a user, like their username and account picture. It also provides the ability to respond to user events such as log-in and log-out.

Memory management and profiling

Support for memory profiling API in Windows.System has been extended to all platforms, and their overall functionality has been enhanced with new classes and functions.

Back to top

File-search APIs available for Windows Phone

As an app publisher, you can register your app to share a storage folder with other apps that you publish by adding extensions to the app manifest. Then call the Windows.Storage.ApplicationData.GetPublisherCacheFolder method to get the shared storage location.

The strong security model of Windows Runtime apps typically prevents apps from sharing data among themselves. But it can be useful for apps from the same publisher to share files and settings on a per-user basis.

Tools and performance
Back to top

Property-change notifications

The Windows.UI.Xaml namespace now defines a number of APIs that support notification of changes to control properties identified as a DependencyObject.

The notification operates like an event, but is actually exposed as a callback. The callback takes a sender argument just like an event handler, but doesn’t take an event argument. Instead, only the property identifier is passed to indicate which property. With this info your app can define a single handler for multiple property notifications. For more info, see RegisterPropertyChangedCallback.

Trace logging

TraceLogging is a new event-tracing API for user-mode apps and kernel-mode drivers; it builds on Event Tracing for Windows (ETW). This API provides a simplified way to instrument code and include structured data with events without requiring a separate instrumentation manifest XML file.

WinRT, .NET, and C/C++ TraceLogging APIs are available to serve different developer audiences.

User Experience
Back to top

List scrolling virtualization

The XAML ListView and GridView controls have a new ListViewBase.ChooseingItemContainer event that improves the performance of the control when a change occurs in the data collection.

Instead of doing a complete reset of the list, which replays the entrance animation, the system now maintains items currently in view, along with focus and selection state; new and removed items in the viewport animate in and out smoothly. After a change in the data collection in which containers are not destroyed, an app can quickly match any "old" items with their previous container and skip further processing of container-lifecycle override methods. Only "new" items are processed and associated with recycled or new containers.

Drag-and-drop capabilities between different application platforms

The new Windows.ApplicationModel.DataTransfer.DragDrop namespaces bring drag-and-drop functionality to Windows Runtime apps. Currently, common drag-and-drop scenarios for desktop programs—such as dragging a document from a folder into an Outlook email message to attach it—are not possible with Windows Runtime apps. Using these new APIs, your app can let users easily move data between different Windows Runtime apps and the desktop. That’s a significantly better and more intuitive app experience than was possible before.

Keyboard acceleration support for keystroke navigation

The new Windows.UI.Xaml.KeyAccelerator class lets you declare keyboard accelerators for your pages in XAML markup. A keyboard accelerator causes the press of a specified key (together with optional modifier keys) to invoke a specified event handler. You can also use the x:Uid attribute with your KeyAccelerator to localize it.

Back to top

Internet Explorer

Internet Explorer introduces Edge mode: a new "living" document mode designed for maximum interoperability with other modern browsers and contemporary web content. This experimental mode is being progressively rolled out to a randomly chosen set of Windows Insider Preview users. You can manually enable or disable Edge mode through the new IE about:flags mechanism. For more info, see:

La pagina è stata utile?
Altro feedback?
Grazie! Il tuo feedback è importante.