La suite “Expression” (Design, Encoder, Blend) arrive en toute logique en fin de course. Elle ne sera pas poursuivie. Ce qu’il faut en savoir : More...
On ne pourra pas dire que Microsoft n’investit pas pour faire connaitre Silverlight : sur le site Expression, un nouveau cours sur 5 jours a été mis gratuitement en ligne.More...
La suite Expression Studio 4 est enfin à la vente (et en téléchargement, version US seule pour l’instant, pour les abonnés MSDN) ! More...
Silverlight 3 est livré de base avec un contrôle très versatile, MediaElement, capable de jouer de nombreux formats comme les mp3 ou les vidéos.
Si ce contrôle est très puissant il est un peu "nu" de base et il faut soi-même ajouter les boutons de commande comme "play" et looker l'ensemble. Avec Expression Blend 3 c'est un jeu d'enfant. Enfin, de grand enfant qui a un peu de temps devant lui tout de même. D'où la question : n'existerait-il pas un MediaElement déjà tout habillé ?
Si vous possédez Expression Media Encoder 3 vous savez que cet extraordinaire outil (servant principalement à encoder des médias) donne le choix entre plusieurs formats de sortie dont des projets HTML tout fait intégrant un média player tout looké, et mieux encore, avec le choix parmi de nombreux modèles.
Quel rapport entre Media Encoder et un projet Blend/VS ? C'est tout simple : lorsque vous installez Media Encoder, sous Blend 3 dans l'onglet Assets vous disposez, en plus de MediaElement d'un nouveau contrôle "MediaPlayer" !
Par défaut ce composant ressemble à l'image ci-dessous. Pour le relooker, il suffit de faire un clic droit et d'éditer un copie du template !
Reste la question à 10 centimes d'euro : oui mais Media Encoder est livré avec de nombreux modèles dont certains ont déjà un look sympa, ne pourrait-on pas récupérer ces modèles au lieu de templater à la main le MediaPlayer ?
Si, c'est possible (© Les Nuls, "Hassan Cehef").
Comment ? Là c'est plus cher... Non, comme je suis un chic type, voici la solution gratuite :
Encoder 3 s'installe avec le code source des modèles qui se trouvent dans le répertoire "C:\Program Files\Microsoft Expression\Encoder 3\Templates\en", il suffit donc de piocher le modèle qu'on désire utiliser, et grâce aux sources d'extraire le contrôle avec son template et de l'intégrer à son propre projet !
Le célèbre Tim Heuer décrit (en englais) la méthode à suivre, je vous renvoie ainsi à son billet Using Encoder Templates in your Silverlight Application si jamais vous n'arrivez pas à vous dépatouiller seul avec le code source des projets Encoder 3.
Intégrer de la vidéo, même HD, dans une application Silverlight n'a jamais été aussi simple... et beau.
Amusez-vous bien, et .. Stay Tuned !
Silverlight propose un espace de stockage privé pour chaque application sur la machine cliente. Cet espace s'appelle l'Isolated Storage (stockage isolé, car protégé et isolé du reste de la machine cliente). C'est dans cet espace qu'il est conseillé de sauvegarder les données propres à l'application (j'y reviendrai dans un prochain billet). Toutefois on peut amené pour certaines informations à préférer le stockage sous la forme de Cookies traditionnels. On peut aussi avoir besoin de lire certains cookies posés par l'éventuelle application hôte en ASP.NET par exemple.
Quelles que soient les raisons, il peut donc s'avérer utile de manipuler les cookies depuis une application Silverlight.
L'application exemple ci-dessous vous permet de tester en live cette fonctionnalité :
Techniquement, et après avoir ajouté à votre code le using du namespace "System.Windows.Browser", il suffit pour créer (ou modifier) un cookie d'appeler la méthode SetProperty de HtmlPage.Document :
1: private bool setCookie(string key, string value)
2: {
3: if (string.IsNullOrEmpty(key) || string.IsNullOrEmpty(value))
4: { return false; }
5: DateTime dt = calExpiry.SelectedDate ?? DateTime.Now
6: + new TimeSpan(1, 0, 0);
7: string s = key.Trim() + "=" + value.Trim()
8: + ";expires=" + dt.ToString("R");
9: HtmlPage.Document.SetProperty("cookie", s);
10: return true;
11: }
Pour la lecture on accède à la chaîne "Cookies" de HtmlPage.Document qu'on peut ensuite traiter pour séparer chaque cookie :
1: private string getCookie(string key)
2: {
3: string[] cookies = HtmlPage.Document.Cookies.Split(';');
4: foreach (string cookie in cookies)
5: {
6: string[] pair = cookie.Split('=');
7: if (pair.Length == 2)
8: {
9: if (pair[0].ToString() == key)
10: return pair[1];
11: }
12: }
13: return null;
14: }
Bref, rien de bien compliqué mais qui pourra vous servir dans certains cas.
Le code source du projet (Blend 3 de préférence, sinon VS 2008 + SL3) : Cookies.zip (62,65 kb)
Stay Tuned !
Les pixel shaders de Silverlight 3 fournis "out of the box" ne sont que deux : le drop shadow et le blur. Mais comme cela était prévisible de nombreux programmeurs exercent leur talent en créant de nouveaux effets...
Forcément l'équipe Microsoft de la suite Expression est très bien placée pour ce genre d'exercice et elle nous propose via son blog un effet de crayonnage assez bien fait. Le tout avec install pour automatiquement voir l'effet dans les palettes de Blend 3 mais aussi avec le code source pour l'étudier et faire ses propres effets.
Le mieux est de vous rendre directement sur le blog de l'équipe Expression, et plus particulièrement sur le billet présentant le Hatching effect. Source et install sont téléchargeables depuis le billet.
A noter, l'effet fonctionne aussi avec WPF selon ce qui est dit mais je n'ai testé que sous Silverlight.
Stay Tuned !
La suite Expression 3 contenant notamment l'extraordinaire Blend 3 est disponible en téléchargement ... pour les chanceux abonnés à MSDN.
Pour les autres je suppose que le produit peut désormais être acheté chez Microsoft, au pire il s'agit d'une question de jours seulement.
Bon, je vous laisse, je viens de finir le download et je désinstalle Blend 3 beta le temps d'écrire ce billet et je vais maintenant installer tout ça !
Miam ! ... euhh Stay Tuned je voulais dire !