Windows Media Center

Transcription

Windows Media Center
Windows Media
Center
Chapitre 1 : Développement de Add-Ins
Maxime LAMURE
I : Présentation........................................................................................................................ 2
II : Petit Rappel ...................................................................................................................... 3
1.1: Qu’est ce que Windows Media Center (MCE) ........................................................... 3
1.2 : Qu’est ce qu’un Add-In.............................................................................................. 3
III : Outils et compilateurs ..................................................................................................... 4
IV : Méthodes de développement........................................................................................... 5
4.1 : Add-In ........................................................................................................................ 5
4.2: Le fichier de configuration.......................................................................................... 5
4.3 : Le déploiement........................................................................................................... 6
V : Exemple de Code : Hello World ...................................................................................... 7
5.1: Add-In ......................................................................................................................... 7
5.2 : le fichier de configuration .......................................................................................... 7
5.3 : Le compilateur ........................................................................................................... 7
5.4 : Le déploiement........................................................................................................... 8
VI : Allons un peu plus loin ................................................................................................. 10
6.1 : Développement d’un Add-In en distribué................................................................ 10
6.2 : Exemple de code ...................................................................................................... 10
VII : Conclusion ................................................................................................................... 15
VIII : Liens ........................................................................................................................... 15
IX : Remerciements.............................................................................................................. 15
I : Présentation
Le but de cet article est de vous initier aux méthodes de développement pour customiser votre
Media Center. Dans un premier temps, je vais présenter les différentes technologies. Puis
j’illustrerais mes explications à l’aide d’exemples simples. Je vais essayer d’être le plus précis
possible sans trop m’étendre sur les fonctionnalités. Si vous voulez connaître toutes les
possibilités du media center, je vous invite à aller voir le SDK Media Center. Tous les
exemples que je donne sont écrit en C# mais peuvent être utilisés par n’importe quel langage
.net.
II : Petit Rappel
1.1: Qu’est ce que Windows Media Center (MCE)
Windows XP Media Center est un Windows XP Home Edition SP2 (pour la version 2005)
avec quelques services en plus (qui apparaissent dans la version professionnel). On peut dire
qu’il s’agit d’une version entre le Home édition et le professionnel.
La particularité de ce système, est qu’il possède un logiciel multimédia directement intégré
dans l’OS : il s’agit de l’application Media Center à partir de laquelle on peut accéder à nos
fichiers multimédia, regarder et programmer notre télé, accéder à des services interactifs à
partir de notre TV de salon. Le but étant de pouvoir piloter l’OS à partir d’une télécommande.
1.2 : Qu’est ce qu’un Add-In
Avec la version 2005 de Media Center, on la possibilité d’accéder à une partie de la couche
objet de Media Center en utilisant la technologie .net. L’intérêt est de pourvoir créer nos
applications qui interagissent avec ce système. Pour ce faire, on développe un Add-In qui va
recevoir dynamiquement une instance d’objet Media Center.
III : Outils et compilateurs
Le développement de Add-In nécessite d’être compilé avec la version 1.0 du compilateur et
non la version 1.1. Vous ne pouvez donc pas compiler votre Add-In avec Visual Studio .net
2003, mais avec une version antérieure ou en tapant les commandes dans le shell.
Pour développer votre Add-In, vous devez faire référence à la dll Microsoft.MediaCenter.
Vous devez donc développer sous Windows XP Media Center 2005 (même si cela peut être
possible, par copie des dlls, sur un autre OS, mais vous ne pourrez exécuter et donc tester
votre programme).
IV : Méthodes de développement
La démarche pour ajouter un Add-In dans votre Media Center est constituée de 3 étapes. Le
développement de l’Add-In lui-même, l’intégration dans le media center à l’aide d’un fichier
XML, et enfin le déploiement sur votre systeme (pour que le media center puisse l’appeler).
Nous allons voir avec plus de détails ces trois étapes.
4.1 : Add-In
Maintenant que nous savons ce qu’est un Add-In, nous allons voir de quoi il se constitue.
Tout d’abords, un Add-In est une Classe qui sera instanciée par le media center. Nous n’avons
pas besoin de lui donner de constructeur, ni de fonctions Main. Par contre, votre classe doit
implémenter les interfaces IaddInModule et IAddInEntryPoint pour respecter certaines
spécifications afin que le media center puisse instancier et communiquer dynamiquement avec
votre Add-In.
L’interface IaddInModule expose les méthodes Initialize et Unitialize. Initialize est la
première méthode que le media center appelle quand le Add-In est lancé. Cela permet au
programmeur de pouvoir initialiser des variables, ou d’obtenir les ressources nécessaires au
bon déroulement du programme. On peut le voir comme le constructeur de l’Add-In.
Parallèlement, la méthode Unitialize peut être perçue comme le destructeur de notre Add-In.
Il s’agit de la dernière méthode que le media center appellera avant de le fermer. Il faut savoir
que cette méthode peut ne pas être appelée si le media center est arrêté de manière brutale.
Apres avoir appelé la méthode Initialize, le media center appelle la méthode Lauch exposée
par l’interface IAddInEntryPoint. Cette méthode possède en paramètre une instance de l’objet
AddInHost. Il s’agit en fait de l’objet à travers lequel nous allons pouvoir interagir avec le
Media center.
Il faut voir le Add-In comme un plugin que l’on peut greffer au media Center. Ce dernier le
charge dynamiquement lors de l’exécution et lui donne une instance de sa couche objet pour
qu’on puisse interagir avec lui.
Enfin, il faut que votre Add-In ait un nom fort pour qu’il puisse être appelé. Pour se faire,
ajouter l’attribut AssemblyKeyFileAttribute à votre assembly.
[assembly:AssemblyKeyFileAttribute("Key.snk")]
Où Key.snk est le fichier contenant les clés (généré par la commande sn –k Key.snk)
4.2: Le fichier de configuration
Pour enregistrer un Add-In dans le media center, vous devez créer un fichier de configuration
en XML. Ce fichier permet de lancer votre Add-In à partir de l’application Media Center.
Nous allons voir comment concevoir notre fichier sans nous étendre dans les fonctionnalités.
Pour plus d’informations, je vous conseille d’aller voir le SDK dans la catégorie Media Center
Hosted HTML Application / Media Center XML Eléments.
La balise application à ici 2 attributs :
Title : cela permet de spécifier le titre de l’application
Id : une chaîne unique représentant le GUID pour identifier votre Add-In. Il peut être
généré à partir d’outils (guidgen.exe).
La balise entrypoint contient les attributs suivants :
id : Cette clé doit être extrait de votre clé public généré précédemment avec la
commande sn.exe (option –t ;-) ). C’est par cette clé que l’application Media Center arrive à
lancer votre Add-In.
addin : une chaîne constitué du nom de la façon suivante
« nomNameSpace.NomClasse,NomClasse »
title : la chaîne qui vous permettra d’identifier votre Add-In dans l’interface MC
description : la description de votre Add-In
imageUrl : l’image qu’aura votre Add-In dans l’interface MC.
L’attribut category de la balise category vous permet de dire quel type d’Add-In il s’agit. En
effet, soit votre Add-In se lancera quand vous cliquerez dessus dans l’interface MC dans le
menu Suppléments .On parle ici d’Add-In « on-demand ». Soit il se lancera automatiquement
quand votre MC s’initialisera, on dit alors qu’il s’agit d’un Add-In « Background ».
4.3 : Le déploiement
Maintenant que nous avons développé notre Add-In, il faut le déployer dans notre media
center. Cette étape est très minutieuse. Voici la démarche à suivre :
•
•
•
•
Compilation de notre Add-In avec le framework 1.0.
Copie de votre dll dans le répertoire Windows/ehome.
Installation de votre dll dans le GAC.
Enregistrement de votre fichier XML.
V : Exemple de Code : Hello World
5.1: Add-In
5.2 : le fichier de configuration
5.3 : Le compilateur
5.4 : Le déploiement
Capture de votre Media center avec votre Add-In dans le menu Suppléments
Capture de l’action engendrée par un clique sur votre Add-In
VI : Allons un peu plus loin
6.1 : Développement d’un Add-In en distribué
Maintenant que nous avons développé un Add-In, l’intérêt est de pouvoir l’utiliser à distance.
Pour cela, j’ai modifié mon Add-In pour qu’il devienne « distribuable » en utilisant la
technologie .net remoting.
6.2 : Exemple de code
6.2.1 : l’Add-In
La méthode de développement est identique à celle utilisé dans le chapitre 4 et 5. Cependant,
il faut effectuer quelques modifications pour qu’il soit accessible à distance. Pour plus
d’informations sur le mécanisme du .net remoting, je vous invite à aller voir ce tutorial
(http://maxime.lamure.free.fr/Remoting1.pdf ).
Pour que notre client puisse se connecter et appeler la méthode distante, nous devons
maintenir la méthode Lauch, exécuté dans un thread en parallèle, active. Pour cela, nous
allons faire une boucle qui ne se terminera jamais. De plus, vous devez vérifier que votre
firewall accepte les connexions clientes distante sur le port utilisé (1000 dans notre cas).
6.2.2 : le fichier de configuration
6.2.3 : L’interface
6.2.4 : Le client
6.2.5 : Compilation
6.2.6 : Exécution
Capture de votre application avec votre Add-In accessible en .net remoting
VII : Conclusion
Nous avons vu comment il était possible d’accéder à la couche objet du media center. Vous
pouvez maintenant étudier les différentes méthodes, possibilités pour personnaliser votre
media center à l’aide du SDK officiel.
VIII : Liens
Site Officiel : Le site officiel de Microsoft France sur Windows Media Center
http://www.microsoft.com/france/windows/xp/mediacenter/default.mspx
Site du SDK Officiel : Le site Microsoft US où l’on peut télécharger le SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=33839d15-fd6e-46be-a3b3eeb7a62d1b20&displaylang=en
The green button: La première communauté sur Windows Media Center
http://www.thegreenbutton.com
IX : Remerciements
Je tiens à remercier l’équipe Microsoft éducation et tout particulièrement Laurent Herbulot et
Jean-Philippe BALIVET pour leurs aides et leurs soutiens.