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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

WCF REST : obtenu que WCF


Sujet :

Développement Web avec .NET

  1. #1
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 050
    Points : 2 087
    Points
    2 087
    Par défaut WCF REST : obtenu que WCF
    Bonjour tout le monde,

    Je suis en train de découvrir WCF, et je viens de mettre en oeuvre le projet "Introduction aux services web REST avec WCF 3.5" .

    Concrètement, j'ai créé dans Visual Web Developper 2010 un projet de type "Application du service WCF" (implémentant .Net 4). Après avoir corrigé quelques erreurs (par exemple casse de System.Net.HttpStatusCode), j'ai obtenu un service qui fonctionne, ce que le client de démonstration permet de vérifier facilement.

    Du côté client, je suis un peu hésitant quant au choix du modèle à utiliser sous Visual C# 2010 Express. Alors j'ai fini par utiliser un projet Winform standard, et ajouter les références à mesure qu'elles apparaissaient manquer. Du reste je n'ai pas repris l'adresse du service telle que fournie dans la page d'introduction, mais j'ai reporté celle affichée par le service dans sa page par défaut.

    Cette démarche doit être à l'origine de mon problème : je suis bien en mesure d'appeler les méthodes présentées par le service à partir d'un objet ServiceBoxOffice.BoxOfficeRESTClient, en revanche si je tape l'URI d'un objet dans la barre d'adresse d'un navigateur je n'obtiens rien, et en cherchant un peu j'apprends que j'ai une erreur 400, erreur de protocole.

    Donc, mon objectif initial de monter un service WCF et un projet client pour l'appeler est atteint, en revanche pour y arriver, du fait de ce qui était disponible comme modèles, j'ai dû lire un topo sur REST, et de ceci je n'ai pas su tirer les bénéfices.

    Dans C# 2010 Express je vois un type de projet "VC# WCF REST Service Template". J'imagine qu'une fois que j'aurai bien compris lequel des quatre projets se trouvant là-dedans sert à quoi, je serai proche de la solution. Une fois qu'on a développé avec ça, des conseils s'appliquent-ils pour le déploiement ? En effet, on a tout dans la même solution, il ne s'agit pas de se tromper pour peu que le service ne soit pas supposé être hébergé sur la même machine que le client.

    Pendant que j'y suis une considération annexe, qui sera peut-être bien résolue par le choix du bon modèle de projet. Dans mon client j'ai essayé d'afficher un film dans la richTextBox, or là-dedans on a refusé de me convertir l'objet film en String, j'ai donc appelé la propriété ToString, qui s'avère par défaut retourner le nom du type d'objet. J'ai donc voulu redéfinir ToString, mais je m'y suis manifestement mal pris.

    Dans Film.cs, à la suite des DataMembers, j'ai ajouté

    public override string ToString()
    {
    return "ce qu\'il faut"; // en substance
    }

    et en réponse j'ai reçu un bonnet d'âne (dans le verbeux message d'erreur figurait qu'il manquait une méthode). Manquait-il un attribut à la méthode ToString() ?

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 050
    Points : 2 087
    Points
    2 087
    Par défaut
    Je suis donc on train de mettre en oeuvre le type de solution "VC# WCF REST Service Template".
    En me référant aux noms des projets qui se trouvent dans la solution, et à ce qui est proposé par défaut, l'interface doit se trouver dans WCF REST Service Contract, et le service dans WCF REST Service. D'ailleurs, un de chaque est déjà disponible, sous les noms respectifs IService.cs et Service1.cs. Aussi je vais garder ces noms pour le service, puisqu'aussi bien il s'agit de développer un service, rien n'empêche qu'il porte ce nom.
    Il me semble, de manière plus ou moins intuitive, que les classes Film et ListeFilms doivent être créées dans le projet WCF REST Service.
    Quand je crée l'attribut [DataContract()] au-dessus du nom de la classe, un message me signale que le type ou l'espace de noms DataContract est introuvable, et une balise active me propose de créer la classe correspondante, même en ayant pris soin de déclarer les espaces de noms System.ServiceModel et System.Runtime.Serialization.

    Je me trouve donc à la tête d'un fichier DataContract.cs qui comporte juste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ServiceModel;
     
    namespace WCF_REST_Service
    {
        class DataContractAttribute : Attribute
        {
            public DataContractAttribute()
            {
     
            }
        }
    }
    Si quelqu'un voit que je me suis fourvoyé, ça pourrait me faire gagner du temps de me dire où ...

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/04/2011, 18h18
  2. WCF REST Service Template
    Par micka132 dans le forum Windows Communication Foundation
    Réponses: 5
    Dernier message: 23/04/2010, 23h48
  3. [SP-2007] SharePoint et les technos 3.5 (WCF & REST)
    Par stephane eyskens dans le forum Contribuez
    Réponses: 1
    Dernier message: 14/09/2009, 00h34
  4. [3.5] Webservice WCF/REST
    Par CUCARACHA dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 21/03/2008, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo