Next week: The Microsoft Surface SDK and other Tools and Resources will be available to you!

Today I’m excited to share with you  resources that should improve our partner’s ability to design and develop Surface Applications to support the next generation device – the Samsung SUR40 for Microsoft Surface. We are going to launch a  “center of excellence” for Surface development that includes the new SDK, and a program to allow qualified partners to reap important marketing benefits.

Microsoft Surface 2.0 SDK releases next week!

At MIX 2011, I announced that we would release our SDK this summer. Well, it’s getting warmer here in Redmond, so I am happy to share with you that the SDK will be available for public download for free from the Microsoft Download Center on July 12th. I explained the focus and features of the Surface 2.0 SDK in my MIX presentation. If you have not already seen it, I have embedded it at the end of this post.

This time I would like to share with you some of my favorite features.

First of all, our SDK now runs on the latest technologies: WPF 4.0, XNA 4.0, Windows 7 (32 bit and 64 bit). Enough said. :-)

Another of my favorite features is that now you can target both Microsoft Surface Hardware and Windows 7 Touch enabled PCs with a single SDK. In our team we informally called this feature “Write once - touch anywhere”.  That means that the same binary can be used in both types of hardware.

The Microsoft Surface 2.0 SDK allows you to target Microsoft Surface
Hardware as well as Windows 7 touch enabled PCs.

Related to that, is the ability to actually query the hardware capabilities of the device. We understand that the best experience for the user occurs when you write an application that takes into consideration the context in which the application is being used. That includes the type of hardware as well as the position of the hardware.

So we added a few APIs for you to query the capabilities of the hardware (maximum number of touches recognized by the hardware, whether the hardware can actually distinguish touches caused by fingers versus other
touches, tag recognition support, tilt support, etc.)

That means that at runtime you application can adapt dynamically to the capabilities and state of the hardware. In the snippet below, I show how you can query the tilt angle of the Surface unit to provide a different experience. The rest of the hardware capabilities are included in the Interactive Surface Device class.

if ( InteractiveSurface .PrimarySurfaceDevice.Tilt == Tilt .Horizontal)
{
// Enable 360 degree UI.
}
else
{
// Use more traditional layout
}

Learn more about adapting your application to the environment here.

You can even simulate different types of hardware capabilities using our new Microsoft Surface Input Simulator.

The Settings Dialog in the Input Simulator allow you to simulate different types of hardware

For more information on our new Input Simulator, check out my earlier post.

Another area of investment that I should mention here is our new visual style. It is consistent with other Microsoft Products such as Zune and Windows Phone. The style is clean, simple yet elegant. Our goal was to create a visual style that would put Content first, a visual style that functional and was not distracting. All of our controls styles have been updated accordingly.


New visual styles used in the Bing for Microsoft Surface Application

One of the controls that we modified both in terms of visual style and interaction style is our ElementMenu control. We noticed that different people would interact with it using different types of gestures. So our ElementMenu now reacts to both dragging gestures as well as tapping gestures. Our ControlsBox sample shows you how to use the menu. Additionally, it includes 49 sample icons that you can use in your applications.


 Updated ElementMenu Control

We had an early adopter program that enabled some of our partners to try the SDK for a few months already. I want to take this opportunity to share that we really appreciate their feedback. Their feedback was crucial to ensure we were investing in the most important areas, and it was also a driving force that kept the quality of the SDK bits high throughout the different development milestones. A HUGE THANKS to everyone that participated in our early adoption programs!

Introducing the Microsoft Surface Design and Development Center on MSDN
The Microsoft Surface Design and Development Center provides access to the Microsoft Surface 2.0 SDK, online training, hands on labs, design and interaction guidelines, application certification, documentation, whitepapers, developer forums and other resources. The Design and Development Center focuses on helping people get jumpstarted with developing amazing new vision based touch applications that people can share at the same time.

The online training is a course that enables people to learn about planning, designing, developing, testing, and deploying Microsoft Surface 2.0 applications for use on the Samsung SUR40 for Microsoft Surface and Windows
7 touch PCs. People proceed through the course at their own pace, or jump directly to the topics which they need. Hands on labs provide developers and designers with a guided opportunity to start building applications and get familiarized with the Microsoft Surface 2.0 SDK. Design and interaction guidelines, certification, and SDK documentation help outline the best practices for making great touch applications that draw on the power of vision input and object interaction. The developer forums are a place that the Surface development community can share information, get help and support.

The Creation of the Microsoft Surface Premier Partner Program
From July 12, we will be highlighting our Surface partners by bringing in PinPoint search results from Microsoft’s Partner Network. Partners that have profiled their application or services against the  Surface Computing product will automatically flow through to the partner listing based on PinPoints ranking.

If you want to differentiate your organization, we will be highlighting Surface partners that have proven development and design expertise as well as a track record of excellent wins on the platform with customers. These partners will be given the “Premier Partner” designation and will be highlighted up front on surface.com as the partners that have a proven track record with Surface. Any partner is eligible to apply and the benefit of Premier Partner will run for 12 months from the time of approval. You’ll find more details on www.surface.com/partners next week.

So there you have it, some great news for Surface partners. And if you happen to be attending the Worldwide Partner Conference next week in Los Angeles stop on by the Surface booth (#104) and chat with the team about the SDK, partner benefits and get hands on with the Samsung SUR40 for Microsoft Surface. Enjoy!

Luis Cabrera-Cordón
Platform Program Manager – Microsoft Surface

P.S. If you are porting a Surface v1 application, check out the Microsoft Surface Migration PowerToy. We will be posting it to Code Gallery on July 12 as well. It is open source in case you want to tweak it for your needs.

 

Comments

  • Anonymous
    July 07, 2011
    “Write once - touch anywhere” Great news.

  • Anonymous
    July 07, 2011
    This is outstanding!! Many thanks for the hard work. Karl

  • Anonymous
    July 07, 2011
    Thanks!  This is awesome and what I've been waiting for..... Xmas in July!

  • Anonymous
    July 07, 2011
    Señor Cabrera-Cordón forgot to provide the link to his MIX presentation.

  • Anonymous
    July 07, 2011
    @Clinton: I embedded the video. For a better quality version, check out: channel9.msdn.com/.../DVC07

  • Anonymous
    July 07, 2011
    This is great news. Happy to see how Microsoft takes touch seriously.

  • Anonymous
    July 07, 2011
    Looking forward to getting it.  So you say "write once - touch anywhere",  will this include the touch focused Windows 8 tile applications that appear to be at the core of touch in Windows?  I've only heard talk of HTML5 and Silverlight for these.  I'm guessing we need to wait for the BUILD event to find out but will be a shame if we can't use your controls.

  • Anonymous
    July 07, 2011
    To say it with the words of Duke: "Hail to the king, baby!" :)

  • Anonymous
    July 07, 2011
    Grest Job ! Tanks to the Surface Team :)

  • Anonymous
    July 07, 2011
    Great Job ! Tanks to the Surface Team :)

  • Anonymous
    July 07, 2011
    This is the best News i heard Thanks  Surface Team ;)

  • Anonymous
    July 07, 2011
    Finally, Great work.Can't wait to get my hands on it.

  • Anonymous
    July 08, 2011
    Exciting news! and would like to hear that it we will be able to write Win8 apps using all the Touch goodness and the cool touch-optimized control sets :) Cross our fingures till the #BUILD event!!!

  • Anonymous
    July 10, 2011
    Will SDK 2.0 still work on Surface Hardware 1.0 (After updating it to .Net 4.0) ??

  • Anonymous
    July 11, 2011
    what about the Surface simulator? Can we use it in a Virtual PC?

  • Anonymous
    July 11, 2011
    @Oliver  We re-architected the input subsystem to be consistent with the way Windows does input. That means that our hardware generates HID messages, and that Windows applications get touch input just like they do on any Windows 7 touch enabled device.  That means that the input generated by Surface v1 hardware (using SurfaceInput) is incompatible with that which version 2 of the controls expect. That said, Josh Blake (one of our MVPs) wrote Blake.NUI, which includes a "SurfaceTouchDevice" that should allow you to consume Surface v1 input from any WPF set of controls. (See nui.joshland.org/.../announcing-blakenui-multi-touch-nui.html for more information)

  • Anonymous
    July 11, 2011
    @Anonymous : Using the surface simulator on a virtual PC is not fully supported... but I tried it, and it works! :-)