Developing Surface Applications

Hello. My name is Luis Cabrera, I am a developer in Microsoft Surface. I joined the team about 6 months ago. Before that, I worked on the Windows Mobile SDK, where I blogged every once in a while. During the next few months, I am planning to write a few more technical entries on the blog. Let me know if this is something you would like to see in the Surface blog.

Since this is my first post, I will start with a few tips that I found useful when I started writing surface applications.

Tip #1: Did you know you could develop and even surface applications using multi-touch in a normal PC?

One tool that is really neat is the Surface Simulator that ships as part of the Microsoft Surface SDK. The Surface Simulator allows you to run applications written for Microsoft Surface and simulate multi-touch on your PC – even if your PC doesn’t have multi-touch capabilities.  Simply plug another USB Mouse into your PC and you will see that now you have two fingers you can use to manipulate items on your application, each of them manipulated by each mouse. You can also right click to change finger orientations


Tip #2: How to get the SDK…

You will notice that the Microsoft Surface SDK is not currently available for download at When you buy a Microsoft Surface for developer purposes, it comes with 5 site licenses for access to the SDK. Additionally, there was a limited distribution of copies of the SDK given at PDC 2008 to the attendees of Microsoft Surface presentations. If you are interested in buying a Microsoft Surface for commercial or developer purposes, go here.

Tip #3: Invest an hour taking a look at the presentation given at PDC.

Once you have copy of the SDK, the best 1-hour investment you can make is dive into this presentation by Brad Carpenter, Doug Kramer and Robert Levy at  It is great at getting you started!

Tip #4: Even though I told you about the simulator in Tip#1…  Do test your applications on an actual Microsoft Surface Device

Even though the simulator can help you and your fellow colleagues develop your Surface applications faster, running it on the simulator does not replace the need to actually test your application in a real device. I recommend you not only deploy it to the device to test functionality, but also see how others interact with the Surface. Does your application feel natural? Are features discoverable? Can many people interact with the application at the same time in the way you intended? The only way you can answer those questions is by running your application on a real device in an environment as real as possible.

Until the next blog entry! Hopefully then we will dive a bit into code.

-Luis Eduardo Cabrera

Comments (0)