IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Silverlight 4 + RIA Services - Prêt pour les affaires


précédentsommairesuivant

Traduction

Cet article est la traduction la plus fidèle possible de l'article original de Brad Abrams, Silverlight 4 + RIA Services - Ready for Business: Exposing OData Services

Exposer des services OData

OData est un ensemble d'extensions émergentes pour le protocole Atom qui rend plus facile le partage de données sur le Web. Pour mettre en valeur OData dans RIA Services, continuons notre série. Nous pensons qu'il est très intéressant d'exposer OData à partir d'un DomainService pour faciliter le partage de données. Par exemple, je pourrais vouloir que les utilisateurs puissent accéder à mes données de manière riche dans Excel aussi bien que mon client Silverlight personnalisé. Je voudrais être en mesure de permettre cela sans écrire de multiples services ou sans dupliquer aucune logique métier ou logique d'accès aux données.


Ceci est très facile à activer avec RIA Services. En fait, il suffit d'une case à cocher ! Quand vous créez votre DomainService, cochez tout simplement la case « Expose OData endpoint » et cela exposera votre DomainService comme un flux OData.

Image non disponible


Si vous avez déjà créé un DomainService, c'est facile d'activer OData dessus également en faisant les deux choses que fait cet assistant.


Premièrement, il ajoute un point de terminaison (en anglais, endpoint) à la section domainServices du web.config.

 
Sélectionnez
<system.serviceModel>
    <domainServices>
      <endpoints>
        <add name="OData" 
             type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </endpoints>
    </domainServices>


Deuxièmement, sur chaque méthode de requête sans paramètres que vous souhaitez exposer par l'intermédiaire d'OData, marquer la requête comme étant par défaut. Cela veut dire qu'à chaque fois qu'il y a une requête pour Plate, c'est cette méthode de requête qui sera utilisée.

 
Sélectionnez
        [Query(IsDefault = true)]
        public IQueryable<Plate> GetPlates()
        {

Une fois que tout cela est fait vous pouvez interroger le service et voir un flux Atom. Le format de l'adresse URL est espace de noms (namespace)+nom du type (typename) pour le domainservice et les points sont remplacés par des tirets suivi de « .svc/Odata/ ». Donc, si la classe DomainService est MyApp.Web.DishViewDomainService alors l'adresse URL sera http://localhost:30045/myapp-web-DishViewDomainService.svc/OData/

Image non disponible


Ensuite accédez avec cette URL : http://localhost:30045/myapp-web-DishViewDomainService.svc/OData/PlateSet

Image non disponible


C'est vraiment cool que les données soient dans un format ouvert basé sur Atom. Mais ce qui est encore mieux, c'est qu'il y a un écosystème naissant de clients qui peuvent consommer ce flux. L'un des plus intéressants est l'add-in Excel appelé PowerPivot.


Une fois que vous l'avez installé avec Excel 2010, sélectionnez la fenêtre PowerPivot.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible


Ensuite vous pouvez utiliser toute la puissance d'Excel. Donc, si vous voulez trier par nombre de mises à jour, avec une note de 4 ou supérieur, avec un nombre de calories entre 3000 et 4000, et ensuite présenter cela dans un graphe d'une façon intéressante, vous pouvez facilement le faire... Le tout avec les données « live » sans aucun code d'application personnalisé.


Ce que nous avons montré dans cette procédure pas à pas, c'est comment exposer OData à partir de votre DomainService et consommer cela dans Excel. Ceci n'est qu'un avant-goût de la prise en charge OData à venir dans le futur dans RIA Services.

Conclusion

Ceci conclut la huitième partie de cette série. Dans la neuvième partie nous verrons comment exposer des services WCF (SOAP/WSDL).


précédentsommairesuivant

Copyright © 2012 Brad Abrams. 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.