Developer Experience

Developing applications for Microsoft Surface is essentially the same as developing WPF or XNA applications, except that the Surface SDK provides extended support for the special features of the Surface environment (50 simultaneous touch points, finger and blob recognition, tagged objects, detection of the orientation of touches, tilted display, rotated display, specialized controls, and so on).

You can develop your application on a device made for Surface or on a separate workstation, as long as the Surface SDK is installed on it. If you use a separate workstation, the Surface SDK includes a tool called the Input Simulator that simulates all the types of input that are supported on a device made for Surface. For more information, see Developing Surface Applications on a Device Made for Surface and Developing Surface Applications on a Separate Workstation.

Before you create your project, you must decide which API set you will use. There are two sets of APIs: the Presentation layer and the Core layer. The Core layer is better for high-end graphics, and the Presentation layer is better for UI design and layout. You can call Core layer APIs from a Presentation layer application, but not the other way around. For more information, see Presentation Layer vs. Core Layer Applications.

To create your Surface application, you can use Microsoft Visual Studio 2010 (or Microsoft Visual C# 2010 Express Edition), and create your project using one of the templates that comes with the Surface SDK: the Surface Application (WPF) template or the Surface Application (XNA Game Studio 4.0) template. The WPF template makes it easy to create a Presentation layer application, and with the XNA template, you can use the Core layer APIs. For more information, see the WPF Quick Start and the XNA Quick Start.

Applications that are built using the Surface SDK can run on devices made for Surface, and on Windows 7 computers, with or without touch functionality. For information about developing an application that will run in multiple environments, see Devices Made for Surface vs. Windows Touch Computers.

Applications that run on a device made for Surface can be standard applications that users open from Surface Shell, or service applications that run in the background and that have no user interface (UI). The different behavior is determined by how the application is registered with Surface Shell. For more information, see Standard vs. Service Applications.

For more information about the features and choices that a Surface application developer has available, see the other topics under Surface Overview.

Designers can easily leverage the end-to-end capabilities of Microsoft Expression Studio 4 to work on Surface Presentation layer applications. Expression Studio 4 includes all the capabilities that designers need to create graphics and media assets, and to design interactivity in Surface applications. For more information, see Designing by Using Expression Blend.

For more information about the Surface platform, see Architecture.

Did you find this information useful? Please send us your suggestions and comments.

© Microsoft Corporation. All rights reserved.