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() ?
Partager