Rechercher, partager, intéragir: faites confiance aux contrats de Windows 8
Publié le 25 juin 2012
Par
Nathanael Marchand

I. Avant-propos et Introduction
I-A. Un mot sur l'auteur
I-B. Introduction
II. Contrats et Extensions, présentation
II-A. Contrat ? Extension? Quelle est la différence ?
II-B. Les différents contrats
II-B-1. App to App Picking
II-B-2. Cached file updater
II-B-3. Play To
II-B-4. Search
II-B-5. Settings
II-B-6. Share
II-C. Les différentes extensions
II-C-1. Account picture provider
II-C-2. AutoPlay
II-C-3. Background tasks
II-C-4. Camera settings
II-C-5. Contact picker
II-C-6. File activation
II-C-7. Game Explorer
II-C-8. Print task settings
II-C-9. Protocol activation
II-C-10. SSL/certificates
III. Les principaux contrats et extensions en détail
IV. Conclusion
I. Avant-propos et Introduction
I-A. Un mot sur l'auteur
Je suis Nathanael Marchand, diplômé 2009 de Polytech'Annecy-Chambéry. Actuellement chez So@t, j'occupe
le poste d'Expert .Net qui regroupe des missions de consulting sur les technologies .Net, d'audit,
de formation interne et externe, la veille technologique ainsi que l'animation des communautés.
Vous pouvez me retrouver ici sur Developpez.com où j'anime et modère la partie .Net ainsi que dans les
différentes communautés (Silverlight, Windows Phone, Windows 8, etc.).
Vous pouvez également me retrouver sur des événements comme les Tech'Days ou les rendez-vous des communautés
où j'anime des sessions.
I-B. Introduction
Windows 8 introduit un nouveau concept pour les interactions entre applications et pour les interactions
avec le système d'exploitation, ce sont les contrats et extensions. Nous allons voir comment les
particularités de Metro influencent la facon de développer et comment s'adapter pour que ce système
qui apparait comme une restriction au premier abord, se transforme en un véritable outil puissant.
II. Contrats et Extensions, présentation
II-A. Contrat ? Extension? Quelle est la différence ?
Les contrats et extensions définissent comment une application intéragit avec l'exterieur, que ca soit
avec les autres applications ou avec le système d'exploitation. Windows 8 isolant les applications
dans une sorte de bac à sable, il est par exemple interdit d'agir directement sur le matériel. Impossible
également d'agir sur d'autres applications. Enfin, pour homogénéiser l'experience utilisateur, les
actions de partage et de recherche sont désormais standardisées dans une experience utilisateur
via la barre des charmes.
Pourtant, il existe une différence fondamentale et très simple à comprendre entre les deux : un
contrat défini ce qu'une application sait faire vis-à-vis des autres applications (elle peut par
exemple partager un contenu avec une autre application). Une extension défini l'interaction entre
l'application et le système d'exploitation, il est par exemple possible de déclarer son application
candidate à l'AutoPlay ou intéragir avec l'imprimante.
Pour implémenter un contrat ou une extension, il faut se rendre dans le manifeste de l'application,
puis dans l'onglet « Declarations », il suffit de choisir ledit contrat et renseigner les quelques
champs.
Nous allons passer en revue la liste des contrats et extensions disponibles. Les principaux seront
par la suite détaillées.
II-B. Les différents contrats
II-B-1. App to App Picking
Derrière ce nom, se cache en fait deux contrats qui concernent le partage de fichiers:
« File Open Picker » et « File Save Picker ». Ils sont utiles pour des applications
qui sont référentiel de fichiers (exemple: l'application Skydrive). Si votre application est une application
de réseau social, vous pouvez définir un « File Save Picker » pour que l'utilisateur sauvegarde
directement ses photos dans ses albums distants via votre application. Même principe pour le « File Open Picker »
qui peut permettre à l'utilisateur d'ouvrir une de ses photos stockée dans ses albums distants.
II-B-2. Cached file updater
Toujours à destination d'une application référentiel de fichiers (type SkyDrive), ce contrat indique que l'application est capable
de maintenir la synchronisation entre le fichier local et le fichier distant. Un document modifié en local sera modifié à distance,
un document distant modifié se verra également modifié localement.
II-B-3. Play To
Derrière ce nom se cache le protocole DLNA. Il est donc utile pour les applications à vocation multimédia : il permet de dire
que l'application est capable d'envoyer du contenu à un périphérique DLNA via ce protocole. Ceci ce fait via la barre des charmes.
II-B-4. Search
Ce contrat est assez controversé dans l'opinion des développeurs. En effet, dans les « guidelines » du Windows Store,
il est interdit de définir une zone de recherche dans son application, il faut utiliser ce contrat de recherche. Il permet donc de
brancher l'application sur la commande Rechercher dans la barre des charmes afin de proposer à l'utilisateur une experience homogène.
II-B-5. Settings
Toujours d'après les « guidelines » du Windows Store, l'experience du réglage des paramètres de l'application doit être la
même dans les différentes applications. Elle fait donc l'objet d'un contrat qui est automatiquement implémenté, pas besoin de le déclarer
dans le manifeste.
II-B-6. Share
Derrière ce nom, il y a également deux contrats: « Share Source » et « Share Target ». Votre application est un fournisseur
de contenu (dictionnaire, encyclopédie, actualités, etc.) ? Laissez les utilisateurs partager votre contenu auprès de ses contacts avec le
contrat « Share Source ». Avec celui-ci, il n'est pas nécessaire d'implémenter le SDK de tel ou tel réseau social. Le contrat s'occupe
de tout (pourvu que ce réseau ait également son application et qu'elle soit installé sur le poste de l'utilisateur).
Votre application met en relation des personnes (réseau social, client de messagerie) ? Le contrat « Share Target » permet aux utilisateurs
d'exprimer leurs opinions, partager leurs passions via votre application.
II-C. Les différentes extensions
II-C-1. Account picture provider
Cette extension permet de déclarer votre application comme une source d'image pour l'image du compte de l'utilisateur. Votre application doit donc être
en mesure de fournir ladite image.
II-C-2. AutoPlay
Deux extensions couvrent cette fonctionnalité qui remplace l'AutoRun : « Auto Play Device » permet d'intercepter lorsque l'utilisateur connecte
un périphérique tel qu'un appareil photo, un lecteur audio ou un caméscope (le périphérique doit être un Windows Portable Device); « Auto Play Content »
permet d'intercepter lorsque l'utilisateur branche un périphérique de stockage de masse (disque dur externe, carte mémoire, clef usb, etc.). Lorsqu'un évènement
est intercepté, il est possible d'intéragir avec le contenu (créer un diaporama, copier les fichiers, etc.).
Il est à noter que ca n'est pas parceque l'application implémente un de ces deux contrats qu'elle sera automatiquement appellée lorsqu'un périphérique sera branché.
C'est en effet à l'utilisateur de choisir avec quelle application il souhaite naviguer dans son contenu. Implémenter le contrat permet d'apparaitre dans cette liste
de choix.
II-C-3. Background tasks
Les Background Tasks sont des tâches effectuées en arrière plan par votre application. Ces tâches sont de plusieurs types : elles peuvent être périodiques, déclenchées
par un évènement système, être une tache de diffusion audio ou garder un canal de communication. Les tâches d'arrière plan méritent un article distinct de par la quantité
d'information les concernant, elles ne seront donc pas abordées dans cet article.
II-C-4. Camera settings
Cette extension est réservé aux fabriquants de webcams puisqu'elle doit être couplé à un pilote pour la caméra. Elle permet de définir un panneau de configuration pour les
réglages de la caméra (balance des couleurs, effets, choix de résolution, etc.)
II-C-5. Contact picker
Cette extension permet de définir l'application comme source de contacts. C'est utile pour une application de réseau sociaux ou un annuaire. Les contacts seront disponibles
pour les autres applications utilisant un ContactPicker.
II-C-6. File activation
Cette extension permet de déclarer son application capable de lire certaines extensions de fichier. Pour une application qui travaille sur des images, il peut être intéressant
de s'associer avec les extensions .bmp, .jpeg, .png et .gif. L'application sera proposée dans la liste "Ouvrir avec..." affichée à l'utilisateur.
Il est bien entendu possible de créer sa propre extension de fichier.
II-C-7. Game Explorer
Permet à votre application d'apparaitre comme un jeu sous Windows. Pour ceci, il est nécessaire d'inclure un fichier GDF (Game Definition File) qui permet notamment au contrôle
parental de restreindre l'accès au plus jeunes à des contenus inadaptés.
II-C-8. Print task settings
Là encore, cette extension est reservée aux constructeurs, d'imprimantes cette fois-ci. Elle permet de définir une interface de réglage de l'impression qui couplée au pilote adéquat
permet des tâches d'impressions avancées.
II-C-9. Protocol activation
Cette extension permet à votre interaction de se déclarer comme protocole. Ainsi un navigateur web peut se déclarer pour le protocole http et https. Un client IRC pourra se déclarer
compatible avec une adresse commencant par irc://, il sera lancé lorsque l'utilisateur saisira une adresse de ce type dans une barre d'adresse. Il est également possible de créer son
propre protocole.
II-C-10. SSL/certificates
Cette extension permet d'installer des certificats SSL dans le magasin de certificats de l'utilisateur. Ces certificats peuvent être utilisés pour sécuriser les communications entre
l'utilisateur et le serveur.
III. Les principaux contrats et extensions en détail
IV. Conclusion


Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ©
2012 Nathanael Marchand. Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation
expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et
jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.