Roadmap for Windows Store apps using C++

Applies to Windows only

Here are key resources to help you get started with using C++ (including Visual C++ component extensions (C++/CX)) to develop Windows Store apps. This is not a comprehensive list of all of the features or available resources. Some topics listed below are specific to C++, and some are not specific to any single programming language. You can bookmark this page so that you can come back to it when you want to learn how to add another feature to your app.

If you'd rather use another programming language, see:

Get started

Essential downloads

Download Windows evaluation copies and Microsoft Visual Studio.

Develop Windows Store apps using Visual Studio

A guide to using Visual Studio to develop Windows Store apps.

Making great Windows Store apps

This article answers the "what?" and "why?" for Windows Store app design and development, and gives you an overview of what you can do to make a great Windows Store apps.

Planning Windows Store apps

What kind of app should you make? How do you plan for different devices? How can you monetize your app? Make the right decisions during the planning phase to simplify deployment and maximize your app's potential.

Designing UX for apps

Tips on designing for the modern user experience.

Migrating Silverlight or WPF XAML/code to a Windows Store app

Reuse your skills. If you know XAML-based platforms like Windows Presentation Foundation (WPF) or Microsoft Silverlight, you can apply those skills to Windows Store apps. Develop for Windows Phone? See Resources for Windows Phone developers.

Create your first Windows Store app using C++

Get started with the tools and create your first Windows Store app.

C#, VB, and C++ project templates for Windows Store apps

You have to select a template when you start developing a Windows Store app. Use this topic to learn what templates to use and what comes with them.

Windows Store app samples

Browse a variety of samples, which you can filter by language.


C++/CX reference

Visual C++ language reference (C++/CX)

High-level page that has links to content that's related to C++.

Quick Reference (Windows Runtime and Visual C++)

Table that provides quick info about C++/CX operators and keywords.

Type system (C++/CX)

Reference content for the types that are supported by C++/CX.

Building apps and libraries (C++/CX)

How to compile Windows Store apps, and link to static libs and DLLs.

Namespaces Reference (C++/CX)

Reference content for the namespaces that contain C++-specific types that can be used in Windows Store apps.


Asynchronous programming with C++

Asynchronous programming in C++

Describes the basic ways to use the task class to consume Windows Runtime asynchronous methods.

Creating Asynchronous Operations in C++ for Windows Store apps

Describes how to use create_async to produce asynchronous methods.

task Class (Concurrency Runtime)

Reference documentation for the task class.

Task Parallelism (Concurrency Runtime)

In-depth discussion about the task class and how to use it.


Network programming with C++


For connecting to web services in Windows Store apps that targetWindows 8.1.


The C++ REST SDK provides support for accessing REST services from native code by providing asynchronous C++ bindings to HTTP, JSON, and URIs. It ships with Visual Studio as an extension SDK to help you write cross-platform C++ HTTP client side code in your Windows Store app as well as desktop apps.


To access Atom and RSS feeds.


To display a web page.

Connecting to peers, web and network services

Additional networking APIs in the Windows Runtime.

Connecting to Bing Maps using the C++ REST SDK

How to use the C++ REST SDK to connect to a web service, in this case the Bing Maps Location API.

Connecting to Bing Maps using Windows::Web::Http::HttpClient

How to use Windows::Web::Http::HttpClient to connect to a web service, in this case the Bing Maps Location API.


Game programming in C++

Developing games

Portal page for game development in Windows Store apps.

Create your first Windows Store app using DirectX

Introductory step-by-step tutorial.

DirectX and XAML interop

Describes how to integrate DirectX surfaces into XAMLUI elements.

Sample: Developing Marble Maze, a Windows Store game in C++ and DirectX

End-to-end C++ Windows Store app sample.

Windows Runtime core user interface objects and DirectX

Background information about interoperation between DirectX and the Windows Runtime.


Windows Runtime components in C++

Creating Windows Runtime Components

High level introduction for all programming languages.

Creating Windows Runtime Components in C++

Introduces basic concepts in Windows Runtime component development.

Walkthrough: Creating a basic Windows Runtime component in C++ and calling it from JavaScript

Shows the basic steps in creating a Windows Runtime component.

Sample: Bing Maps Trip Optimizer, a Windows Store app in JavaScript and C++

End-to-end sample with in-depth examples of many aspects of Windows Runtime component development.


Windows Runtime C++ Template Library (WRL)

Windows Runtime C++ Template Library

You can use WRL to write C++ applications and components that interact with the Windows Runtime through COM interfaces instead of the C++/CX.


Additional useful libraries for Windows Store app programming

C++ Standard Template Library

Windows Runtime types play well with Standard Template Library types. Most C++ Windows Store apps use Standard Template Library collections and algorithms, except at the ABI boundary.

Parallel Patterns Library

PPL provides algorithms and types that simplify task parallelism and data parallelism on the CPU.

C++ Accelerated Massive Parallelism (C++ AMP)

C++ AMP provides access to the GPU for general-purpose data parallelism on video cards that support DirectX 11.


Basic tasks for all Windows Store apps

Important  Not all of the following topics currently have code examples in C++. However, if an example uses classes from the Windows Runtime—as opposed to libraries that are specific to JavaScript or the .NET Framework—then you can usually translate them to C++/CX with minimal changes. Refer to Visual C++ language reference and Creating Asynchronous Operations in C++ for Windows Store apps for help about how to translate sample code.

Quickstart: Creating a user interface with XAML

Extensible Application Markup Language (XAML) is the declarative language you typically use to create UI in your new Windows UI. Although you will often use tools like Microsoft Visual Studio 2012 and Blend for Microsoft Visual Studio 2012 for Windows 8 to design your UI, these tools just generate XAML and therefore it is important to understand how XAML works. For more details on see XAML overview.

Quickstart: Adding controls

Create controls and connect them to code.

Controls list

See what controls are available.

Controls by function

See what controls are available in various functional categories.

Quickstart: Adding app bars

Add an app bar (needed by most Windows Store apps).

Quickstart: Styling controls

Use styles to customize the appearance of your app, and reuse your appearance settings across your app.

Quickstart: Adding text input and editing controls

Display text and let your user enter and edit text.

Quickstart: Defining layouts

Position controls and text where you want them.

Quickstart: Touch input

Make your app work with touch.

Responding to keyboard input

Make your app work with the keyboard.

Responding to mouse input

Make your app work with the mouse.

App capability declarations

Enable app capabilities like Internet access or document-library access for running in the security sandbox.

Quickstart: Navigating between pages

Navigate between pages and pass data between them.

Launching, resuming, and multitasking (C#/C++/VB)

This section explains how you can activate, suspend, and resume your Windows Store app in response to the normal app lifecycle events, file and protocol associations, and AutoPlay events. This is a must for most apps.

Creating and using tiles, toast, and Windows push notifications

At the very least you need a tile to allow users to open your Windows Store apps. In addition, you can increase the utility and visibility of your app by using notifications and creating "live tiles".

Quickstart: Printing

Print from your app.

Accessibility for Windows Store apps

Make your app accessible.

Make your Windows Store app world ready

Windows is used worldwide and so it is important for you to design your Windows Store apps to appeal to an international audience in order to get maximum distribution.

Adding a splash screen

Add a splash screen to provide your users with immediate feedback as your app loads its resources.

C#, VB, and C++ programming concepts for Windows Store apps

These topics go over some basic programming concepts applicable to Windows Store apps including events and dependency properties.

Publish Windows Store apps

The Windows Store lets you reach the millions of customers who use Microsoft Windows.


Rich visuals and media

Quickstart: Imaging

Integrate images into your app.

Animating your UI

An introduction to how animation works in XAML.

Quickstart: Animating your UI using library animations

Animations are built into many of the controls you use; however, you can add the same library of animations to other components of your UI and even create your own animations when you need to.

Quickstart: Video and audio

Integrate media into your app.

Quickstart: Shapes

Draw scalable vector graphics shapes, such as ellipses, rectangles, polygons, and paths.

Quickstart: Brushes

Draw with various colors, gradients, and even video.

3-D effects for Windows Store apps using XAML

You can apply 3-D effects to content in your Windows Store apps using perspective transforms. For example, you can create the illusion that an object is rotated toward or away from you.


Working with data

QuickStart: Data binding to controls

Bind a control to a single item or bind a list control to a collection of items. This can be used for displaying data, such as stock prices or headlines, in controls. For detailed info, see Data binding with XAML.

Quickstart: Reading and writing a file

Read from and write to a file.

Quickstart: Accessing files with file pickers

Let the user open or save a file.


How to drag items from a ListView or GridView within the same app.



Responding to motion and orientation sensors

Use motion and orientation sensors.

Quickstart: Responding to changes in lighting (C#)

Use an ambient light sensor.

Quickstart: Detecting a user's location

Use location services.


Searching, sharing, and connecting

App to App Picking You can help users pick files from one app directly within another app. Users gain freedom and flexibility. Apps increase their popularity by supporting the App to App Picking contract.
Sharing Great apps make it easy for users to share what they are doing with their friends and family. Apps that support the Sharing contract can automatically share content to and from any other app that also supports the Sharing contract.
Association launching sample

Use a charm bar to search an app and share between apps. This sample shows how.

Proximity and tapping

Use proximity to connect computers with a simple tap gesture. If two computers are near each other, or are tapped together, the operating system becomes aware of the nearby computer.

Streaming media to devices using Play To

Use the Play To contract to let users stream audio, video, or images from their computer to devices in their home network.

Supporting AutoPlay

Use AutoPlay events to make your app do the right thing automatically when a device is connected to the computer, or a camera memory card, thumb drive, or DVD is inserted into the computer.


Guidelines and best practices

Detailed UX guidelines for Windows Store apps Use this resource to find best practices for a variety of specific design implementations and features like file pickers, SemanticZoom, cross-slide, etc.
Performance best practices for C# and Visual Basic Here are some concepts and guidelines to consider to ensure that your app performs well on your users' computers.



Windows Store app fundamentals Articles that provide deeper dives into subjects such as app lifecycle, contracts, capabilities, data, and so on.
Programming concepts Background articles on various aspects of XAML user interface programming.
White papers for Windows Store apps Articles and downloadable white papers on various subjects.


API reference

Here are the key APIs that are supported in Windows Store apps that use C# or Visual Basic.


Windows Runtime

If you are familiar with platforms like Silverlight, many of these APIs may be familiar. (They have "XAML" in the namespace name.) The Windows Runtime is made up of native APIs that are built into the operating system. Windows Runtime is fundamental to Windows Store apps. It's implemented in C++ and supported in JavaScript, C#, Visual Basic, and C++.

Namespaces Reference(C++/CX)

Reference content for the namespaces that contain C++-specific types that can be used in Windows Store apps.



Samples for Windows Store apps

Samples page that you can filter for C++.

Windows Store Hello Windows app in C++

Introduces the C++/CX language extensions and development environment.

Simple Blog Reader

Shows how to retrieve RSS data from the internet.

Getting started with Mobile Services and C++ sample

Shows how to add a mobile service to a Windows Store app in Visual Studio using C++ and XAML.

Developing an end-to-end Windows Store app using C++ and XAML: Hilo

Larger sample that shows how to use modern C++, the Windows Runtime, asynchronous programming, XAML, and development patterns such as Model-View-ViewModel (MVVM) in your Windows Store app apps using C++.


Related topics

Concepts and architecture
Win32 and COM for Windows Store apps
Windows Runtime reference



© 2014 Microsoft. All rights reserved.