Developpement Windows Phone - partie 19

Cet article fait partie d’une série d’articles sur le développement Windows Phone. Il s’agit d’une traduction des articles se trouvant sur la MSDN.

Sommaire

Bien débuter et fondamentaux

Visuels et média

Travailler avec les données

Sondes et autres fonctionnalités spécifiques au téléphone


Récupérer des données dans vos Applications Windows Phone

Il existe plusieurs façons de stocker et récupérer des données dans vos applications Silverlight pour Windows Phone 7 applications. Ce tutoriel va vous donner des pistes pour déterminer quelle approche est la plus adaptée en fonction de vos prérequis. De plus, ce tutoriel contient des liens vers d’autres sujets contenant plus d’informations.

Ce tutoriel contient les sections suivantes :

Sources de Données

Les données peuvent être présentes à plusieurs endroits. Par exemple, des données en lecture seule peuvent être stockées dans un fichier local dans vos applications. Les données spécifiques à l’utilisateur de l’application peuvent être stockées dans un endroit appelé l’isolated storage ou bien les données peuvent être stockées sur internet et accessibles à travers un web services.

clip_image003[1]

Fichiers Locaux

Vous pouvez utiliser des fichiers, comme des fichiers texte ou XML, pour stocker des données en lecture seule localement. Les fichiers locaux peuvent être compilés en tant que ressources (Resources Files) ou fichiers de contenu (Content Files).

Fichiers de ressource

Les fichiers de ressource sont contenus dans l’assembly du projet. Vous pouvez utiliser des fichiers de ressource dans vos projets d’applications et de librairies, et ensuite déployer vos assemblies à l’intérieur ou encore à l’extérieur de votre package d’application (.xap). L’avantage d’un fichier de ressource est que le fichier sera toujours disponible depuis l’application. Toutefois, votre application mettra peut-être un peu plus de temps à démarrer lorsque vous utilisez ce type de fichier. Vous indiquez qu’un fichier est un fichier de ressource en affectant sa propriété Build Action dans Visual Studio à Resource. Vous pouvez accéder à un fichier de ressource en utilisant la méthode Application.GetResourceStream. Par exemple, allez voir Application.GetResourceStream.

Vous utiliserez un fichier de ressource lorsque vous aurez typiquement les conditions suivantes :

  • Le temps de démarrage de l’application n’est pas important.
  • Vous n’aurez pas besoin de mettre à jour le contenu du resource file après qu’il ait été compilé dans l’assembly.
  • Vous souhaitez simplifier la distribution de l’application en diminuant le nombre de dépendances.

Fichiers de contenu

Pour des raisons de performances, les fichiers de contenu sont souvent préférés aux fichiers de ressources dans les applications pour Windows Phone. Les fichiers de contenu sont inclus dans le package de vos applications (.xap) sans être inclus dans une assembly. Si ils ne sont pas compilés dans une assemby, les assemblies sont compilées avec des metadatas contenant une association avec chaque fichier de contenu. Les fichiers de contenu peuvent être partagés par plusieurs assemblies d’un même package. Vous indiquez qu’un fichier est une fichier de contenu en affectant sa propriété Build Action dans Visual Studio à Content. Vous pouvez accéder à un fichier de contenu à partir du fichier du package de l’application. Pour voir un exemple qui utilise la méthode XElement.Load pour accéder à un fichier de contenu, jetez un œil à Loading an XML File topic.

Vous utiliserez une fichier de contenu lorsque vous aurez typiquement les conditions suivantes :

  • Vous voulez pouvoir mettre à jour le contenu du fichier de contenu sans avoir besoin de recompiler l’assembly qui l’utilise.
  • Le temps de démarrage de l’application est un critère important.

Isolated Storage

Si vous avez besoin de stocker et récupérer des informations spécifiques à l’utilisateur, vous pouvez utiliser l’isolated storage. Dans les applications Silverlight pour Windows Phone, il n’y a pas d’accès direct au système de fichier du système d’exploitation. Toutefois, vous pouvez utiliser l’isolated storage pour stocker et récupérer des données localement sur le téléphone de l’utilisateur. Il y a deux façons d’utiliser l’isolated storage. La première façon est de sauvegarder et récupérer les données sous forme de clef/valeur en utilisant la classe IsolatedStorageSettings. La seconde façon est de sauvegarder et récupérer des fichiers en utilisant la classe IsolatedStorageFile. Pour plus d’information sur comment utiliser l’isolated storage, jetez un œil à Isolated Storage QuickStart.

Terminologie des Web Services

Travailler avec des services web peut être perturbant à cause des différents types de services, formats, et technologies. Il est préférable d’avoir une connaissance même basique de la terminologie utilisée. Le tableau ci-dessous contient quelques termes qui sont utilisés lorsque l’on fait référence à des services web.

Terme

Description

web service

Bloc logique qui fournit des données et services à d’autres applications. Les applications accèdent à des web services en utilisant les protocoles et formats de données standards du web tels que HTTP, XML, and SOAP, et ce indépendamment de l’implémentation de chaque web service.

REST

(Representational State Transfer Protocol) Un protocole pour exposer des ressources sur le web accessible par des clients.

POX

(Plain Old XML) Un terme utilisé pour décrire du simple XML.

JSON

(JavaScript Object Notation) Un format concis pour l’échange de données. Il a été désigné pour être lisible par un être humain, mais aussi parsé simplement par un ordinateur.

OData

(Open Data Protocol) Un protocole web pour requêter et mettre à jour des données.

SOAP

(Simple Object Access Protocol) Un protocole concis pour échanger des données structurées dans un environnement distribué.

.

Technologies des Web Services

Il y a de nombreuses technologies réseaux et Web services que vous pouvez utiliser pour consommer des données dans vos applications Silverlight pour Windows Phone. Ces technologies contiennent :

  • Classes HTTP
  • Services WCF
  • WCF Data Services (OData services)
  • Windows Azure Services

Classes HTTP

Vous pouvez accéder à des web services ou des ressources sur un serveur directement depuis une application Silverlight pour Windows Phone en utilisant les classes HttpWebRequest/HttpWebResponse ou WebClient dans le namespace System.Net. Ces classes fournissent l’ensemble des fonctionnalités requises pour envoyer n’importe quel type de requête sur n’importe quel web service disponible avec le protocole HTTP. Silverlight n’offre pas la possibilité d’héberger des services basés sur HTTP, ces classes sont donc utilisées lorsque l’application sur le téléphone accède à des services web existants. Vous utiliserez ces classes lorsque le service HHTP que vous voulez utiliser est hébergé par une autre personne, que vous n’avez pas la main dessus et que ce service utilise le format XML ou JSON. Gardez toutefois à l’esprit que la sérialisation JSON est limitée sur Windows Phone. Vous pouvez utiliser ces classes pour construire une requête, en assurant ainsi que la requête suit le format attendu par le service. Si toutefois vous créez le service en vous basant sur un modèle de données existant, Silverlight offre des solutions complètes plus productives en utilisant WCF, tel que décrit dans la prochaine section. Pour plus d’information sur l’utilisation de la classe WebClient pour accéder à des services web, jetez un œil à Building a REST Web Service Client QuickStart. Pour plus d’informations sur les restrictions de sécurité et l’accès aux services web en utilisant les classes HttpWebRequest/HttpWebResponse ou WebClient , jetez un œil à Connecting to Web and Data Services for Windows Phone et HTTP Communication and Security with Silverlight.

Services WCF

Windows Communication Foundation (WCF) est un framework pour créer et accéder à des services web. WCF vous permet d’exposer une classe en tant que service et d’échanger des objets entre Silverlight et ce service. Dans un application Silverlight pour Windows Phone vous pouvez utiliser SLsvcUtil.exe ou utiliser la fonction Add Service Reference de Visual Studio pour générer un proxy local pour le service. Pour plus d’information, jetez un œil à Networking in Silverlight for Windows Phone. Pour plus d’information sur l’utilisation de l’outil SLsvcUtil, jetez un œil sur Using SLsvcUtil.exe to Access a Service. Le proxy vous permet d’accéder au service à travers une classe locale. Les services WCF supportent plusieurs protocoles (dont HTTP et TCP) et de nombreux formats, tels que SOAP, XML et Atom. Pour plus d’information, jetez un œil à How to: Access a Service from Silverlight.

WCF Data Services (OData services)

WCF Data Services, anciennement appelé ADO.NET Data services, est un framework vous permettant d’accéder à des données de votre modèle de donnée existant sous forme de ressources REST (representational state transfer). WCF Data Services expose les données sous forme de flux ODATA (Open Data Protocol). En plus de cela, et si votre application Silverlight pour Windows Phone interagit avec Sharepoint, Sharepoint 2010 expose ses données en tant que WCF Data Services. WCF Data Services gère tout le mécanisme de communication HTTP, de sérialisation ainsi que d’autres tâches qui doivent être habituellement mises en œuvre lorsqu’un modèle de données doit être exposé à travers un service. Cela veut dire que vos applications peuvent accéder à ces données à travers le protocole HTTP standard pour exécuter des requetés ainsi que créer, mettre à jour et supprimer des données à travers WCF Data Service, y compris entre différents domaines. Les fonctionnalités ODATA pour Windows Phone sont inclues dans la bibliothèque Client OData sur Codeplex. Pour plus d’information sur la façon de générer un proxy et d’écrire un client pour un service ODATA, jetez un œil à Open Data Protocol (OData) Overview for Windows Phone et How to: Consume an OData Service for Windows Phone.

Windows Azure Storage Services

Vous pouvez utiliser Windows Azure pour stocker et récupérer des données que vous voulez utiliser dans vos applications Windows Phone, cela est particulièrement utile quand on sait que l’espace de stockage sur le téléphone st limité. La plateforme Windows Azure fournit plusieurs options pour stocker des données pour des applications Windows Phone. Windows Azure storage fournit un espace de stockage persistant et durable dans le cloud et pouvant augmenter ou diminuer sa disponibilité en fonction de la demande. La façon d’accéder au Windows Azure storage est très similaire à la façon d’accéder à un service web. Pour plus d’information sur l’utilisation de Windows Azure storage services dans vos applications Windows Phone, jetez un œil à Storing Data in the Windows Azure Platform for Windows Phone.

Choisir l’approche à utiliser

Une fois que vous connaitrez les prérequis de votre application, vous pourrez décider quelle est l’approche la plus adaptée. Le tableau ci-dessous donne une liste de scénarios et l’approche recommandée.

Scenario

Approche Recommandée

Vous voulez inclure des données en lecture seule dans l’assembly.

Fichier de ressource locale

Vous voulez mettre à jour des données en lecture seule sans recompiler.

Fichier de contenu local

Vous voulez stocker des données propres à l’utilisateur.

Isolated storage

Vous voulez accéder à des données d’un service externe en REST ou en POX.

Classes HTTP

Vous voulez accéder à un flux RSS.

Classes HTTP

Vous voulez accéder à un service SOAP.

Services WCF, en utilisant un proxy

Vous voulez exposer une classe existante à travers un service pour l’utiliser depuis Silverlight.

Services WCF

Vous voulez accéder à des données depuis un service qui expose un flux OData.

WCF Data Services

Vous avez besoin de stocker et lire une grande quantité de données.

Windows Azure storage services

A Voir

 


Cliquez ici pour revenir au sommaire de la liste d’articles