Getting Started With Microsoft Surface Development
In my previous article, I talked a little about the inside and outside of a Microsoft Surface unit. To actually start developing Surface applications, a few more steps are required.
Prerequisites
- Microsoft .NET Framework 3.5
- Microsoft Visual Studio 2008 with C# Project features
- Microsoft Windows Vista 32 bit
- Microsoft XNA Framework Redistributable 2.0 (available here)
- Microsoft Surface Development Kit (not publicly available)
- A minimum screen resolution of 1280 x 960
Creating projects
After the installation of the prerequisites is done, extra templates have been added to Visual Studio to be able to create new Surface projects.

There are 2 options to create a new Surface project:
- Using WPF
- Using XNA

I will be choosing WPF now, so when the new project is created a basic structure is foreseen which looks like this:

Following files are already available:
- A first surface window
- An app.xaml to initialize the application
- An application xml file to describe the application (description, name and icons)
- Some resources
Running projects
There are 3 possibilities to run a Surface application:
- As a standard windows/wpf executable
- On a Surface unit itself
- Inside the Surface simulator
Any Surface application can be started as any regular wpf/windows application by double clicking on the executable, or by hitting F5 inside Visual Studio.
The application will then look like this:

The second way of running a surface application, is by running it on a surface unit or inside the surface simulator.
Surface Simulator
The surface simulator is an application installed when you install the Surface sdk. It simulates a multi touch device, by supporting multiple mice, tags, … anything which is supported by a real Surface unit.
The simulator can be found here:
C:\Program Files\Microsoft SDKs\Surface\v1.0\Tools\Simulator\SurfaceSimulator.exe

When multiple mice are attached to the computer, they can all be used to interact with the application although working with multiple mice on a single computer is not really easy
If you are like me running on a screen resolution less than 1280 x 960, you will receive following error message unable to run the simulator. I’m going to try to find a solution for this so I can develop surface application on my laptop as well.

To run the application inside the simulator, you have to make sure the simulator is running before you start the application. When the simulator is running, and you start the application using the executable or by hitting F5 inside visual studio, the simulator will show the application:

Conclusion
Now that we have our environment set up, we can start developing our kick ass Surface applications. The development itself is more or less the same as WPF development. Only a few controls have a specific Surface control which needs to be used (SurfaceButton, SurfaceCheckbox, SurfaceWindow, …)
An important tip when starting with surface development is not only relying on the simulator to test the applications. It’s really needed to test the application properly on a real unit as well since the interaction with multiple people around the application is a lot different than running it on a single machine with multiple mice.
In the coming weeks I will be posting a little more on my experiences while developing one of our Surface applications, so stay tuned.
Please let me know how you can solve the 1280×960 requirement if you have figured it out. I would also like to use this on my laptop.
Sorry, but in the meanwhile I haven’t found any solution yet. Except perhaps using an external monitor?
oh awesome you can use two mice if you dont have a multitouch interface. or did i read that wrong?
Yes that’s correct. You are even not limited to only 2 mice, you can hook up as many as you can / want.
Its only not very easy to work with multiple mice on a single computer, since the synchronization between your two hands is not something you are very used to, but it works to test different scenarios.
Wow, surface seems to be really interesting. I saw on a few other websites, that Vista Home Premium is not supported. In your article, you say that only any version of Vista 32 bit will work. Is it possible to install and use it under ‘Home Premium’?
I also thought of using it in VirtualBox with my Windows 7 Ultimate RC. Any chance to get that working (especially with multiple mice support)?
You can run the Surfaceshell directly but you do not get the tool bar to switch between inputs@Sam
@Sam You can run the Surfaceshell directly but you do not get the tool bar to switch between inputs