[PDC 2008] Developing for Microsoft Surface
Par Brad Carpatenr - Program Manager Surface Team
Chaque évolution des interfaces graphiques a été accompagné de sa nouvelle manière de développer:
- d'abord le CLI en 100% texte, ou tout s'effectuait au travers du clavier
- puis les GUI (graphic user interface) avec de nouvelles API graphique pour gérer la souris, les fenêtres
- et aujourd'hui les NUI (natural user interface) ou le clavier et la souris sont remplacés par les mains de l'utilisateur
Microsoft Surface combine les sens humain et les technologies d'affichage pour diffuser du contenu digital sur tout type de contenu. L'interaction homme / logiciel s'effectue sans intermédiaire, en multi-touch, pour plusieurs utilisateurs simultanés et même avec de la reconnaissance d'objets déposés directement sur l'interface.
Les équipes de développement de Surface ciblent 5 secteurs vertifaux: Automotive, Financial Services, Healtcare, Leisure and Entertainment et le Retail
Annonce: A partir d'aujourd'hui, Microsoft Surface est disponible à l'achat accompagné de son SDK (www.surface.com).
Suite de la présentation par Robert Levy - Program Manager Surface SDK et Doug Kramer - Surface Lead Developer
Démonstration de surface:
- Le système est capable de capturer l'image d'objets posés sur la table
- Et également d'obtenir les coordonnées complètes et l'orientation de chaque doigt posé dessus
Le développement sur Microsoft Surface s'effectue directement avec Visual Studio
L'architecture de Surface est la suivante: Microsoft Surface Hardware and Drivers => Windows VISTA SP1 => puis d'un coté Windows Integration => Shell UI & APIs | et de l'autre coté le système de capture des informations qui contient une Core API complétée par l'API WPF.
Au niveau de WPF, Surface utilise des versions personnalisés des contrôles WPF ainsi que des contrôles spécifiques. Le XAML varie donc juste un petit peu entre une application native WPF et une application Surface (juste des balises qui portent des noms différents).
Les contrôles disponibles pour Suirface: SurfaceWindows, SurfaceMenu, SurfaceContextMenu, SurfaceButton, [..], SurfaceListBox, SurfaceScrollViewer, SurfaceSlider, SurfaceScrollBar, SurfaceTextBox, SurfacePasswordBox, ...
Démonstration - portage d'une application WPF sur Surface:
- Présentation de l'application PhotoDemo présente dans le SDK de WPF
- Ajout dans le projet d'une référence aux assemblies de Surface
- Remplacement des mots clé Windows, Button, ScrollViewer par SurfaceWindows, SurfaceButton et SurfaceScrollViewer
- Compilation (sur la table surface et pas l'écran du PC) et l'application marche!
Il peut être intéressant d'ajouter à une simple application WPF des fonctionnalités plus intéressantes pour les utilisateurs:
- Retourner automatiquement la direction de l'affichage en fonction de la position de l'utilisateur
- Ajouter des fonctionnalités de manipulation avancées (glisser / déposer)
- Ajouter de l'interaction avec des objets physiques
Pour ceci, le contrôle ScatterViewControl permet de:
- Rapidement créer des applications 360 degrés, multi utilisateurs
- Simplifier l'ajout des fonctionnalités de manipulation pour modifier la taille, bouger et faire tourner les éléments graphiques
Démonstration, utilisation du contrôle ScatterViewControl pour créer une application d'affichage et de manipulation de photos
- Visual Studio contient un nouveau modèle de projet "Surface application (WPF)"
- Le ScatterViewControl est un conteneur de données qui peuvent lui être databindées (par exemple dans la démo à partir d'un répertoire sur le système de fichiers contenant des photos)
- Extension du contrôle par l'ajout de propriétées pour activer / désactiver l'agrandissement / retraicissement, la rotation et jouer sur la vitesse de décélération des objets glissés / déposés / jetés
La reconnaissance d'objets posés sur la surface s'effectue au travers de tags de reconnaissances placés sur ceux-ci. Il est donc possible de répérer dans l'application ces objets et de faire agir l'interface en fonction (entourer l'objet de menus, déclencher n'importe quel type d'actions). Cette gestion s'effectue par code au travers du contrôle TagVisualizer.
Démonstration, lors de l'ajout d'un objet physique représentant une palette de couleurs à trou, les trous sont remplis sur la surface par des couleurs différentes. Chaque couleur est un bouton qui permet de choisir une couleur pour dessiner sur la surface. La table capte la palette quand elle est posée et rempli les trous avec les bonnes couleurs.

Annonce: Windows 7 supportera nativement le développement multitouch. Les applications développées avec le SDK Surface fonctionneront nativement sur Surface et sur Windows 7.
En tout cas, pour un super produit, nous avons droit à une très bonne session animée avec beaucoup d'humour durant les démonstrations!