Blog Windows Store pour les développeurs
Blog des développeurs d'applications Windows 8
IEBlog Français
Blogs de l'équipe Windows
Blog Windows Live
Télécharger Windows 8 Release Preview
Centre de développement : applications de style Metro
Suivez-nous @BuildWindows8
Conférence BUILD de Windows //build/
Windows 8 Release Preview forums
Développement d’applications Metro
Lors de la conception du modèle d'application de Windows 8 et des nouvelles applications de style Metro, nous nous sommes fixé un objectif majeur en termes d'architecture. Il consistait à permettre aux développeurs de proposer aux clients des applications utilisables en toute confiance, à tous les niveaux : comportement adéquat vis-à-vis des ressources, absence de conflits avec les autres applications, utilisation des ressources système avec le consentement de l'utilisateur, processus d'installation et de désinstallation simples, etc. Ces caractéristiques nécessitent une plateforme solide et des outils de développement robustes. Cette approche nécessite de prendre un nouveau départ, car nous ne pouvions pas l'adapter aux systèmes existants, et à ce titre, Windows 8 représente véritablement un nouveau départ. Ce billet décrit une partie des efforts mis en œuvre au niveau de la plateforme pour proposer des applications de style Metro fiables et dignes de confiance. Ce billet a été rédigé par John Hazen, chef de projet au sein de notre équipe Expérience de développement. --Steven
L'un des grands objectifs liés au développement de la plateforme d'applications de style Metro de Windows 8 était de faire en sorte que les utilisateurs puissent faire confiance aux applications. Cette mission nous concerne tous. Dans ce billet, j'explique notre philosophie en matière de capital confiance et de fiabilité des applications, et j'explique comment instaurer cette confiance dans la conception même de vos applications.
Commençons par expliquer ce que nous entendons par confiance. Imaginez un client parcourant le Windows Store et examinant une application de style Metro. Nous voulons qu'il se concentre uniquement sur l'application et qu'il n'ait pas à se demander si cette application est parfaitement sûre. Nous voulons que l'utilisateur présuppose que l'application fonctionnera comme il le souhaite, qu'elle se comportera de façon appropriée sur le système, qu'elle utilisera uniquement les données et informations auxquelles il l'autorise à accéder et qu'elle coexistera en toute harmonie aux côtés des autres applications ; en d'autres termes, nous voulons que l'utilisateur fasse confiance à l'application.
Avec cette plateforme, nous voulons aider tous les développeurs à créer de formidables applications incarnant cette philosophie de confiance, de sorte que la confiance s'établisse de façon naturelle. Nos efforts en la matière ont porté sur le système tout entier. Voici comment nous voyons les choses :
Capital confiance d'une application : SDK Windows 8 pour les applications de style Metro, Kit de certification des applications Windows, signatures des applications, conteneur d'application, évaluations et avis, processus d'embarquement du Windows Store, installation sans souci, données télémétriques
Ce billet couvre tous ces aspects et décrit de façon plus approfondie les fonctionnalités que nous proposons en matière d'applications. Commençons par décrire la vue d'ensemble :
Nous savons bien évidemment qu'un processus d'embarquement peut être déjoué, que les jeux d'API peuvent être utilisés à mauvais escient, que les limites imposées par les SDK peuvent être dépassées et que les conteneurs d'application ne sont pas totalement inviolables. Néanmoins, nous sommes convaincus que les efforts mis en œuvre dans ce nouvel écosystème vous aideront à créer des applications qui enchanteront vos clients. Cette approche à plusieurs dimensions est la plus efficace pour gagner la confiance du client. Nous améliorerons chacune de ces dimensions au fil du temps et de l'expérience acquise. Parlons maintenant plus précisément de confiance.
Plusieurs membres de notre équipe ont déjà évoqué sur le blog Windows Store les principes généraux de conception du Windows Store et nos objectifs en la matière. Si vous n'avez pas encore eu l'occasion de lire ce billet consacré au Windows Store, nous vous conseillons de le faire maintenant : le Windows Store joue en effet un rôle crucial dans votre relation avec les clients. Examinons quelques-uns des moyens employés par le Windows Store pour instaurer un climat de confiance au sein de l'écosystème d'applications.
En premier lieu, le processus d'embarquement du Windows Store établit une base cohérente pour la qualité et la fiabilité des applications. Les tests de conformité technique disponibles dans le Kit de certification des applications Windows vous aident à savoir si votre application répond aux exigences requises, avant d'envoyer votre application. Grâce à vous et aux autres développeurs proposant des applications répondant à ces exigences, les clients découvriront et essaieront avec plaisir de nouvelles applications, ce qui contribuera à créer un écosystème d'applications encore plus solide pour nous tous.
Le Windows Store permet aux clients d'évaluer et de laisser des commentaires sur les applications, de façon très simple. Ce système d'évaluation permet de mettre en avant les meilleures applications et d'inciter un nombre croissant de clients à essayer en toute confiance les applications les mieux notées. Dans la page de description d'application ci-dessous, les évaluations et les avis sont mis en évidence, mais aussi deux autres éléments importants. Avant d'installer une nouvelle application, les clients peuvent connaître les autorisations dont disposera l'application une fois installée (nous reparlerons de cet aspect d'ici quelques paragraphes). Après avoir installé une application, si le client se pose des questions sur le contenu ou le comportement de l'application, il peut vous le signaler. Nous vous aiderons alors à résoudre les éventuels problèmes identifiés. En aidant les clients à identifier les applications qui correspondent le mieux à leurs besoins et en les autorisant à laisser leur avis et des commentaires, nous contribuons à améliorer la confiance globale accordée à l'écosystème d'applications de Windows 8.
Page de description d'application sur le Windows Store
Enfin, le Windows Store collecte des données télémétriques qui vous aident à analyser les problèmes constatés par vos clients. Vous disposez notamment du nombre de défaillances et des types de défaillances rencontrés. Nous examinons ces données télémétriques recueillies automatiquement pour déterminer si le comportement d'une application manque de fiabilité ou si celle-ci ne correspond pas aux attentes des clients. Notre objectif est d'utiliser à bon escient les commentaires individuels fournis par les clients sur les applications (à travers les évaluations et les avis), mais aussi d'accroître la visibilité sur la façon dont votre application se comporte en pratique sur les ordinateurs des clients, pour vous permettre de l'améliorer.
Par tous ces aspects, le Windows Store est le partenaire dont vous avez besoin pour entrer en relation avec les utilisateurs qui recherchent votre application et les aider à profiter d'une expérience optimale avec vos applications.
Lorsque vous avez réussi à attirer le client sur la page de description de votre application, vous souhaitez que rien ne vienne empêcher ce client d'obtenir cette application. Avec Windows 8, un clic suffit pour obtenir une application. Ainsi, le client n'a plus besoin de répondre à toute une série de questions, ni de cliquer sur de nombreux boutons. Une fois connecté au Windows Store, si une application lui plaît, il n'a plus qu'à cliquer sur le bouton et à confirmer l'achat : c'est terminé !
La bonne nouvelle pour vous est que vous n'avez pas besoin d'écrire la moindre ligne de code d'installation pour profiter de cette approche magique : Windows 8 s'occupe de tout ! Non seulement l'installation est entièrement gérée, mais en plus Windows utilise des signatures numériques pour vérifier l'intégralité de votre application, de sa publication sur le Windows Store jusqu'à son installation, et même au-delà, lorsqu'elle est chargée et exécutée sur l'ordinateur de vos clients. Si Windows détecte que l'application ne correspond plus à sa signature numérique, le client est guidé de façon à télécharger une version corrigée sur le Windows Store.
Comme Windows installe chaque application à un emplacement distinct et utilise des emplacements séparés et privés pour stocker les données et les paramètres de chaque application, les clients n'ont pas à se soucier des conflits susceptibles de se produire lorsqu'ils installent ou suppriment une application. Ils sont plus que jamais enclins à essayer des applications, car ils savent que le fait d'installer et de supprimer des applications ne dégradera pas les performances au fil du temps (en pratique, grâce aux contrats Windows 8, chaque application installée rend l'expérience utilisateur encore plus performante). De votre côté, vous savez que les autres applications n'ont que très peu de chances d'affecter l'expérience utilisateur de votre application.
Ce mécanisme d'installation des applications unique, vérifiable et cohérent simplifie non seulement votre travail, mais offre en plus une expérience simple et positive à vos clients, qui sont alors d'autant plus confiants et enclins à utiliser vos autres applications. Pour en savoir plus sur le déploiement d'applications, consultez l'article consacré aux packages et au déploiement des applications.
Plus l'expérience client offerte par vos applications sera positive, plus ils seront enclins à essayer de nouvelles applications et à les mettre à jour lorsque vous les publiez. Le SDK Windows 8 pour les applications de style Metro constitue une base solide pour la création d'applications que les clients n'hésiteront pas à installer.
Nous avons beaucoup travaillé sur le jeu d'API à proposer pour les applications de style Metro, non seulement pour simplifier l'environnement de programmation de Windows, mais aussi pour fournir une plateforme parfaitement testée sur laquelle vous pouvez créer vos applications en toute confiance, en sachant qu'elles fonctionneront parfaitement avec le modèle d'application de style Metro de Windows 8.
Résistez à la tentation de rechercher des moyens pour appeler d'autres API que celles incluses dans le SDK. Au final, ces appels ébranlent les attentes des clients vis-à-vis de votre application. Le fonctionnement des API non incluses dans le SDK avec les applications de style Metro n'est pas garanti, ni dans cette version, ni dans les versions ultérieures. Votre application risque donc de ne pas fonctionner correctement chez tous les clients. En outre, ces API peuvent ne pas fonctionner correctement dans l'environnement asynchrone, qui fait partie des bases de la conception d'applications de style Metro. Enfin, ces API peuvent ébranler la confiance des clients, en accédant à des ressources ou à des données avec lesquelles les applications de style Metro n'ont normalement pas à interagir. Pour toutes ces raisons, nous avons mis en place des contrôles dans le Kit de certification des applications Windows, afin de vous aider à identifier les endroits où vous avez pu appeler par inadvertance des interfaces non présentes dans le SDK.
S'il est possible de masquer ou de dissimuler les appels vers des API non incluses dans le SDK, ce comportement n'est pas conforme aux attentes des clients, ni aux règles du Windows Store. Au final, nous avons créé cette plateforme pour aider les développeurs comme vous à créer de formidables applications fonctionnant parfaitement avec le système, et avec d'autres applications et d'autres appareils, dans le but de satisfaire au mieux les clients. Pour parvenir à cet objectif, il est indispensable d'utiliser le SDK des applications de style Metro.
Les clients souhaitent bénéficier d'un processus d'installation propre. À ce titre, le SDK vous aide à créer des applications qui s'intègrent correctement au système. En outre, les clients veulent profiter d'applications et d'une plateforme parfaitement fiables. Nous vous aidons à atteindre vos objectifs en matière de fiabilité, en séparant plus nettement les applications de style Metro, ce qui n'était pas possible avec les applications de bureau Windows traditionnelles. Sous Windows 8, toutes les applications de style Metro fonctionnent dans le contexte d'un conteneur d'application unique qui contribue à isoler l'application et ses données des autres applications de style Metro.
Les conteneurs d'application présentent un certain nombre de caractéristiques partagées par toutes les applications de style Metro :
Le fait de séparer ainsi les applications facilite le développement d'applications fiables et respectueuses de l'utilisateur. Parallèlement, nous souhaitons que toutes les applications puissent fonctionner en parfaite collaboration les unes avec les autres. Windows 8 offre plusieurs mécanismes permettant aux applications de style Metro de fonctionner les unes avec les autres et avec la plateforme, de façon à proposer des expériences utilisateur satisfaisantes :
Ces différentes solutions bien précises permettent à votre application de collaborer de façon plus approfondie avec les autres applications et le système. Le conteneur d'application est là pour vous aider à répondre aux attentes de vos clients en termes de fiabilité et de respect du système et des données. Les contraintes du conteneur d'application ont pour but de vous aider à répondre aux attentes des clients en matière de cohérence et d'intuitivité des applications. En utilisant des techniques permettant à votre application d'exécuter du code en dehors d'un conteneur d'application, vous trompez la confiance des utilisateurs et vous enfreignez les règles du Windows Store.
Au cours des échanges avec les développeurs lors de cette période préliminaire, nous avons constaté que certaines applications utilisaient ces mécanismes de façon inappropriée ou involontairement malveillante. Il nous semble donc utile de détailler plus spécifiquement les fonctionnalités des applications.
Le conteneur d'application peut être étendu de différentes façons grâce aux déclarations de fonctionnalité, lesquelles sont conçues pour prendre en charge des scénarios spécifiques. Nous vous recommandons donc de ne les utiliser que dans certaines conditions particulières. Ces fonctionnalités peuvent être classées dans quatre grandes catégories :
Pour déclarer une fonctionnalité dans l'une de ces catégories, il suffit de la cocher dans le concepteur de manifeste de Visual Studio. Cependant, ajoutez ces fonctionnalités uniquement si elles sont indispensables dans au moins un des scénarios d'utilisation de votre application. Au cours de la phase Consumer Preview, nous avons constaté que plusieurs applications envoyées pour publication sur le Windows Store déclaraient toutes les fonctionnalités ou une fonctionnalité non essentielle. Par conséquent, même si la liste des fonctionnalités possibles est relativement courte, il peut être utile d'examiner plus en détail chacune d'entre elles pour comprendre comment les utiliser.
Concepteur de manifeste de Visual Studio
Ces fonctionnalités permettent à votre application d'accéder aux données de l'utilisateur qui n'ont pas forcément été créées dans votre application. Les utilisateurs attendent des applications qu'elles soient respectueuses de l'accès à leurs données privées. Pour honorer la confiance témoignée par les utilisateurs à l'égard de votre application, vous pouvez notamment déclarer uniquement l'accès minimal nécessaire à votre application. Dans la plupart des cas, vous pouvez éviter totalement de recourir à ces fonctionnalités en utilisant le sélecteur de fichiers, grâce auquel l'utilisateur peut parcourir les fichiers situés sur son disque dur ou son réseau. Par exemple, vous pouvez utiliser le sélecteur de fichiers pour autoriser l'ouverture d'un fichier ou pour ajouter une commande Enregistrer sous à votre application, afin de permettre à l'utilisateur d'enregistrer le contenu de votre application dans ses bibliothèques ou sur un dispositif de stockage amovible.
Déclaration dans le manifeste
Avantages
musicLibrary
Permet d'ajouter, de modifier ou de supprimer des fichiers dans la bibliothèque musicale du PC local ou des PC du groupe résidentiel.
videoLibrary
Permet d'ajouter, de modifier ou de supprimer des fichiers dans la bibliothèque de vidéos du PC local ou des PC du groupe résidentiel.
pictureLibrary
Permet d'ajouter, de modifier ou de supprimer des fichiers dans la bibliothèque d'images du PC local ou des PC du groupe résidentiel.
documentsLibrary
Permet d'ajouter, de modifier ou de supprimer des fichiers dans la bibliothèque de documents du PC local. L'application peut accéder uniquement aux fichiers stockés dans la bibliothèque de documents et dont les types de fichiers sont définis par le biais de la déclaration Associations de types de fichiers. Elle n'a pas accès aux bibliothèques de documents des PC du groupe résidentiel.
removableStorage
Permet d'ajouter, de modifier ou de supprimer des fichiers sur les dispositifs de stockage amovibles. L'application peut accéder uniquement aux fichiers présents sur des dispositifs de stockage amovibles et dont le type de fichier est défini dans le manifeste, par le biais de la déclaration Associations de types de fichiers. L'application n'a pas accès aux dispositifs de stockage amovible branchés aux PC du groupe résidentiel.
Lors de la phase Consumer Preview, nous avons constaté que certaines applications déclaraient ces fonctionnalités alors que cela n'était pas nécessaire. Par exemple, certaines applications déclaraient la fonctionnalité documentsLibrary pour différentes raisons :
Si votre application vise à être le principal outil de gestion du système pour un type de fichier donné (une visionneuse de télécopies qui doit pouvoir gérer tous les fichiers .TIFF de la bibliothèque de documents de l'utilisateur, par exemple), déclarez cette fonctionnalité.
De nombreux composants matériels, par exemple les capteurs d'orientation et les accéléromètres, sont accessibles par toutes les applications. Cependant, pour la plupart des clients, certains composants sont plus sensibles que d'autres, car ils sont fortement liés à la confidentialité de l'utilisateur. Vous pouvez créer de nombreuses applications de qualité en vous appuyant sur ces composants matériels. Par exemple, si vous avez développé un jeu permettant de jouer à plusieurs, l'utilisation de la fonctionnalité proximity permet d'établir une connexion optimale entre des composants matériels.
Comme ces composants sont étroitement liés à la confidentialité de l'utilisateur, Windows 8 vérifie que si vous déclarez la fonctionnalité, l'utilisateur sera invité à autoriser cet accès la première fois que l'application essaiera d'accéder à ce composant matériel spécifique. Par exemple, si votre application propose des cartes géographiques, vous voudrez sans doute accéder aux données de géolocalisation du client. La première fois que votre application essaie d'obtenir ces informations, le client voit un message l'invitant à autoriser votre application à accéder à ces données. Cette approbation reste en vigueur jusqu'à ce que le client décide explicitement de retirer l'accès, par le biais des paramètres. Comme le client peut refuser l'accès à ces composants matériels à votre application, même si vous avez ajouté cette fonctionnalité au manifeste, vous devez concevoir votre application de façon à ce qu'elle gère correctement l'absence d'accès. Par exemple, si le client a refusé l'accès à votre application au GPS intégré, il vous suffit de l'inviter à sélectionner sa position sur une carte.
location
Permet d'accéder à la position géographique actuelle, obtenue auprès d'un composant matériel dédié (capteur GPS, par exemple) intégré au PC ou déduite des informations réseau disponibles.
webcam
Permet d'accéder au flux vidéo issu de la webcam, pour autoriser l'application à capturer des images et des vidéos à partir des webcams connectées.
microphone
Permet d'accéder au flux audio du microphone. L'application peut ainsi enregistrer les signaux audio détectés par les microphones connectés.
proximity
Offre la possibilité de connecter au PC des appareils situés à proximité, via les ondes radio du champ de proximité. Cette fonctionnalité peut être utilisée pour envoyer des fichiers ou communiquer avec une application sur un appareil situé à proximité.
La plupart des applications ont besoin d'une connexion Internet. Aussi, les modèles Visual Studio d'applications de style Metro intègrent par défaut la fonctionnalité internetClient. Si votre application n'a pas besoin de communiquer via Internet, vous devez supprimer cette fonctionnalité. La fonctionnalité internetClientServer est généralement utilisée dans les scénarios P2P (peer-to-peer) de jeu ou de voix sur IP, mais vous ne devez utiliser cette dernière que si votre application doit ouvrir un port au niveau du pare-feu. Utilisez la fonctionnalité privateNetworkClientServer lorsque votre application a besoin de communiquer via les réseaux privés, par exemple entre des appareils au sein d'un foyer ou par le biais d'une connexion réseau d'entreprise.
internetClient
Offre un accès sortant à Internet et aux réseaux situés dans des lieux publics (aéroports, cafés, etc.). La plupart des applications nécessitant Internet doivent utiliser cette fonctionnalité.
internetClientServer
Offre un accès entrant et sortant à Internet et aux réseaux situés dans des lieux publics (aéroports, cafés, etc.). Cette fonctionnalité est un sur-ensemble d'internetClient. Il n'est pas nécessaire d'activer internetClient si cette fonctionnalité est déjà activée.
privateNetworkClientServer
Offre un accès entrant et sortant aux réseaux intranet dotés d'un contrôleur de domaine authentifié et aux réseaux que l'utilisateur a désignés comme faisant partie de ses réseaux domestiques ou professionnels.
La plupart des développeurs n'ont pas besoin d'utiliser ces fonctionnalités. Leur utilisation est très limitée et fait l'objet de règles d'embarquement et de vérifications supplémentaires. Dans certains cas néanmoins, ces fonctionnalités sont nécessaires et adaptées. C'est par exemple le cas pour les banques demandant une authentification à deux facteurs et qui doivent autoriser les clients à fournir une carte à puce contenant un certificat numérique qui confirme leur identité. Les autres applications conçues avant tout pour les professionnels et non pour le grand public peuvent nécessiter un accès aux ressources d'entreprise, accessibles uniquement par le biais d'informations d'identification de domaine.
enterpriseAuthentication
Offre la possibilité de se connecter aux ressources intranet d'entreprise qui nécessitent des informations d'identification de domaine.
sharedUserCertificates
Offre la possibilité d'accéder aux certificats logiciels et matériels (certificats sur carte à puce, par exemple) pour valider l'identité d'un utilisateur. Lorsque les API associées sont appelées au moment de l'exécution, l'utilisateur doit entreprendre une action (insérer une carte, sélectionner un certificat, etc.). Cette fonctionnalité n'est pas nécessaire si votre application inclut un certificat privé par le biais d'une déclaration de certificats.
Réussir à inspirer confiance
Les clients souhaitent profiter en toute sécurité de Windows 8 et de vos applications. L'expérience utilisateur des applications de style Metro a été conçue pour vous permettre de créer facilement des applications que tous les utilisateurs peuvent essayer et acheter en toute confiance. Elle instaure ainsi un cercle vertueux : les utilisateurs aimeront acheter des applications, ce qui générera de nouveaux débouchés pour les développeurs, qui pourront alors créer et proposer des applications de style Metro toujours plus exceptionnelles.
Comme je l'ai évoqué au début de ce billet, nous sommes tous au début d'une nouvelle aventure commune. Nous sommes convaincus que les efforts que nous avons investis dans ce nouvel écosystème vous aideront à développer des applications plébiscitées par les utilisateurs, et nous sommes impatients de collaborer avec vous pour proposer des expériences utilisateur innovantes et étonnantes à nos clients communs.
--John Hazen