Home > Development > Getting Started With Microsoft Surface Development

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.

 Microsoft Surface: SDK Installed

There are 2 options to create a new Surface project:

  • Using WPF
  • Using XNA

Microsoft Surface: Visual Studio

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

Microsoft Surface: Project

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:

Microsoft Surface: Standalone

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

Microsoft Surface: Simulator

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.

Microsoft Surface: Resolution

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:

Microsoft Surface: 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.

Kristof Rennen Development , ,

  1. Sam
    June 3rd, 2009 at 00:31 | #1

    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.

  2. June 8th, 2009 at 15:48 | #2

    Sorry, but in the meanwhile I haven’t found any solution yet. Except perhaps using an external monitor?

  3. j
    June 19th, 2009 at 04:15 | #3

    oh awesome you can use two mice if you dont have a multitouch interface. or did i read that wrong?

  4. June 19th, 2009 at 07:54 | #4

    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.

  5. Tom H.
    August 18th, 2009 at 15:15 | #5

    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)?

  6. .
    February 15th, 2010 at 20:43 | #6

    You can run the Surfaceshell directly but you do not get the tool bar to switch between inputs@Sam

  7. .
    February 15th, 2010 at 20:43 | #7

    @Sam You can run the Surfaceshell directly but you do not get the tool bar to switch between inputs

  1. No trackbacks yet.