Ajouter une référence à un service Web (et pas un service WCF) dans Visual Studio 2008 + Appeler un WebService SharePoint avec WCF
Par Edgar le dimanche 20 janvier 2008, 16:56 - Visual Studio 2008 - Lien permanent
Ceux qui ont déjà travaillé avec Visual Studio 2008 auront sûrement remarqué qu'il n'existe plus d'entrée "Add Web Reference" dans le menu "Project" et dans la menu contextuel du projet, a la place se trouve maintenant une entrée "Add Service Reference" que l'on pourrait confondre mais qui n'agit pas de la même manière.
En effet cette entrée peut être est assez troublante car elle ne créé pas une référence vers un WebService mais vers un service WCF... Chose encore plus troublante, si vous pointez vers un fichier WSDL ou un service ASMX une classe proxy sera bien générée... Mais elle ne fonctionnera pas de la même manière que votre classe proxy de Web Reference. Plus exactement certains objets disponibles dans le cadre d'une référence Web ne seront plus disponibles (comme par exemple la classe "Lists" dispo avec une référence au Webservice Lists.asmx de SharePoint...).
Il existe cependant un moyen simple de pouvoir générer une "Web Reference" de type Visual Studio 2005 en utilisant Visual Studio 2008 et voici la démarche :
1) Cliquez sur "Add Service Reference" comme pour créer une référence à un service WCF
2) Dans la fenêtre qui s'ouvre cliquez sur "Advanced"
3) Dans la nouvelle fenêtre choisissez "Add Web Reference" en bas
4) Vous vous retrouverez ainsi dans votre bon vieux sélecteur de Web Service !
5) Vous avez à présent dans votre solution un répertoire "Web Reference" avec votre classe Proxy et l'entrée "Add Web Reference" qui apparait
Par ailleurs si vous souhaitiez directement appeler les Web Service SharePoint avec WCF vous trouverez sur le Blog suivant un article (en anglais) récapitulant la manoeuvre :
Calling SharePoint web services using Visual Studio 2008, WCF, and Windows Authentication
Bon code à tous !