PDC – Developing for Microsoft Surface

Wow! What a crazy start to my trip. Yesterday (Sunday) I left Tampa at about 3pm EST and didn’t arrive at the Kyoto Grand Hotel until about midnight PST, making it right around 12 round hours of travel. After arriving here I went with my friend and colleague Clint Rutkas to get some late night Chinese food.

PDC Day 1 from Dan Waters on Vimeo.

9guy This morning, I woke up a little later than I wanted, and missed the Ray Ozzie keynote. We watched it in the Channel 9 lounge area, though. My job here at PDC is to support the Channel9 group in the lounge and also to learn as much as I can about burgeoning technology.

I did manage to make it to a session today that I really appreciated, called Developing for Microsoft Surface. As you know, Surface is a multi-touch technology being developed by Microsoft, and by now, you can see Surface in action in places like AT&T stores, Harrah’s casinos, Sheraton hotels, and MSNBC election coverage. For each of these industry verticals is a group of applications that have been built; for example, Harrah’s has a bartending application called Mixologist and another social app called Flirt (which transmits video images from a camera above the surface table to other surface tables). AT&T stores use a system unique to Surface called optical tagging which allows phones to be placed on the table and have more information automatically presented to the consumer. The Sheraton uses an application called Concierge, and MSNBC uses a Surface app to help Chuck Todd make and display electoral map projections.

Hands There are 5 vertical industries currently engaging in Surface development: Automotive, Healthcare, Financial Services, Leisure & Entertainment, and Retail. What’s really cool is that the Surface SDK is being made available to everyone at PDC, so if you are not here, you’re really missing out. The SDK even includes a hardware emulator that you can use to build and test your apps.

The SDK looks really promising. There are a number of Surface control classes for WPF input, and the best part is that you already know how to use the because they inherit from standard control interfaces. The multitouch aspect of these controls is already handled for you, so you don’t have to reinvent any wheels here. The basic component of any Surface app is called the SurfaceWindow, which automatically goes fullscreen when you launch an app. The other controls you can use are very similar to what you’d use on Windows, but they support the cool multitouch stuff you see on Surface tables like flicking and elasticity. These controls include SurfaceListBox, SurfaceScrollViewer, SurfaceSlider, SurfaceScrollBar, SurfaceTextBox, and SurfacePasswordBox.

Those controls are all great and standard, but there are two controls that make a Surface app a true Surface app: the ScatterView control and the TagVisualizer control.

The ScatterView control is a little bubble that stacks items in a collection, like in the often-demoed Photos app. It lets you group data into one control and rotate it, scale it, and pass it around the table. Here’s a quick video of how easy it is to use the ScatterView control (from this session):

The TagVisualizer control lets you leverage the optical tagging system in Surface, which picks up unique patterns and translates them into some identifiable code. The TagVisualizer control really simplifies any situation where you might need to use optical tagging. Check out the session demo:

All in all, it’s been a great time here so far. Clint and I have made a LOT of great connections and it’s a blast!