Frédéric Colin
Windows Media Center et WCF : développez votre maison intelligente
Le développement d'applications pour Windows Media Center est facilité avec l'arrivée du SDK 5.3. Même si l'on sent un modèle objet bien lourd derrière, il devient plus facile d'exposer les fonctionnalités de WMC sous la forme de services WCF.
Par Frédéric Colin publié le 23/06/2008 à 08:04, lu 1394 fois, 10 pages
 8 | Le Hosting WCF
Le processus porteur des services WCF est directement géré par l'addin en tâche de fond créé pour la circonstance. J'ai donc réalisé ce traitement lors du lancement de l'addin, c'est à dire lors de l'appel de la Méthode « Launch » créé par la classe qui sert de point d'entrée.

Contrairement aux Hosts WCF classiques, je n'ai pas utilisé la classe « ServiceHost » pour gérer l'écoute des services exposés. En effet, lorsque l'on met en place une architecture REST avec WCF, nous utilisons un nouvel espace de nom (« System.ServiceModel.Web ») et une nouvelle classe « WebServiceHost » qui n'est de toute façon qu'une classe fille de « ServiceHost » :

TheHost

    = new System.ServiceModel.Web.WebServiceHost(

        typeof(THB.WCF.Sample1.Services.MediaCenterManagement));

 

TheHost.Open();

Tout le paramétrage du service en lui-même étant réalisé en fichier de configuration. Ensuite, il reste à savoir quel fichier de configuration puisque je vous rappelle que nous sommes hébergés dans l'application Windows Media Center. Les choses étant bien faites l'exécutable « ehexthost.exe » possède son propre fichier de configuration (« ehexthost.exe.config ») stocké bien évidemment côte à côte. Voici donc la configuration associée :
 
Configuration WCF du Host

Configuration WCF du Host

 
Par défaut, vous n'aurez probablement pas les droits d'écrire dans ce fichier. Il suffira pour cela (UAC active sous Vista) de modifier les droits d'écriture et y associer précisément votre compte.

Je préfère de très loin un paramétrage de type déclaratif (par fichier de configuration) à un paramétrage de type impératif (par le code) pour des raisons évidentes de facilité d'administration.
 
» Démarrer une discussion