Sur le papier Windows Mobile et WCF sont de super amis (Compact Framework 3.5)… et semble être fait l’un pour l’autre. Oui mais voila quand on regarde sous le capo on s’aperçoit qu’il manque un certain nombre d’élément dans la version Mobile de WCf :
- Pas de ServiceContract.
- Pas de OperationContract.
- Pas de DataContract.
- Pas de DataMember.
- Pas de EnumMember.
- Mais surtout, pas de ChannelFactory!
Oui mais alors comment ça marche? Ajouter une référence?… Oh Non ce serrait trop simple!
Il faut utiliser la commande NetCFSvcUtil.exe. Celle-ci sert à généré un proxy spécial pour Compact Framework. Ne cherchez pas sur votre pc elle n’est pas dans le SDK. Encore une fois, ce serrait trop simple. Il vous faudra donc télécharger les Power Toys :
Power Toys for .NET Compact Framework 3.5
Ensuite si vous avez suivi l’installation par défaut l’exécutable se trouve dans le répertoire :
C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin\
On lance donc sa petite commande sur son service WCf… et là : c’est le drame! : Error.
On triture la documentation dans tout les sans et on ne trouve rien à ce sujet. On va sur internet et on découvre que :
NetCFSvcUtil.exe ne fonctionne pas sur Windosw Vista SP2 et ni sur Windows 7
Super, reste alors le lancement de l’application en mode compatibilité. J’ai testé XP SP2, SP3, Vista SP1…
Rien n’y fait, il faudra soit passer par un machine soit passer par le fameux mode XP via Virtual PC de Windows 7… Ce que bine entendu mon pc ne peut pas faire…
Je renge donc pour le moment mon appli dans ma section “Grand Code Malade”.
Donc le résultat c’est 1 à 0 en faveur du couple WCF + WindowsMobile… mais je n’ai pas encore dit mon dernier mot!
Signé : un développeur pas comptent, mais alors vraiment pas comptent