Developpez.com - Microsoft DotNET
X

Choisissez d'abord la catégorieensuite la rubrique :


Rechercher, partager, intéragir: faites confiance aux contrats de Windows 8

Publié le 25 juin 2012

Par Nathanael MarchandSite personnelBlog

 


       Version PDF   Version hors-ligne
Viadeo Twitter Facebook Share on Google+        



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



               Version PDF   Version hors-ligne

Valid XHTML 1.0 TransitionalValid CSS!

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 et 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.

Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -