Par Yasser Makram, Consultant chez Santon.
Chargement
Lien de téléchargement
L'installation par défaut de Silverlight n'est pas très attirante. Si l'on prend l'exemple de Hard Rock café, on voit une image de prévisualisation de ce qu'on aura une fois le plugin Silverlight installé.
Si l'on utilise le contrôle asp:Silverlight, il suffit de placer un sous-élément, mais le speaer ne se souvient pas duquel car IntelliSense le lui propose tout seul d'habitude.
Si l'on utilise la balise <object>, il suffit de replacer les liens <a> dans cette balise.
Animation durant le chargement
L'animation par défaut n'est pas non plus très attrayante. On peut utiliser la classe WebClient et s'abonner à l'événment DownloadProgressChanged. Avec le WebClient on télécharge les ressources dont on a besoin.
Performance
- Utiliser Visibility au lieu de Opacity pour cacher un élément
- Ne pas utiliser Width & Height sur un MediaElement ou un object (utiliser le path)
- Ne pas abuser de la transparence
- Eviter le mode windowless
- Attention à ne pas abuser du multithreading
- Quand on n'a plus besoin d'un gestionnaire d'événement, se désabonner de l'événement
Threads
Ils offrent une amélioration de performance, surtout sur les machines multi-cores, mais il ne faut pas en abuser.
Pour le multithreading, utiliser la classe BackgroundWorker, qui s'utilise comme dans les Windows Forms.
Traduction
Utiliser les fichiers resx, que l'on place dans un répertoire pour l'ordre. Dans le fichier XAML on rajoute un xmlns sur le répertoire des ressources (c'est un espace de nommage). Du coup il n'y a plus qu'à faire un binding sur une propriété de la classe qui a été générée par Visual Studio pour les ressources.
On n'a plus qu'à changer le paramètre uiculture passé à la balise <object>.
Animations
Ce n'est pas agréable de faire des animations en code C# ou VB.NET avec Silverlight. Pour se simplifier la vie dans ces cas, il y a une bibliothèque appelée Tweener:
http://www.codeplex.com/agTweener
Tweener permet de faire des zooms (animés) simplement en positionnant les propriétés ScaleX et ScaleY d'un Tween.
Intéraction page-Silverlight
Pour appeler une fonction JavaScript depuis le code Silverlight:
HtmlPage.Window.Invoke(nomFonction, paramètre)
Pour appeler une méthode .NET depuis le code JavaScript:
Placer les attributs ScriptableType et ScriptableMember, et appeler HtmlPage.RegisterScriptableObject.
Ajouter des thèmes
Silverlight.FX (téléchargeable sur http://www.nikhilk.net) permet de créer des thèmes pour les applications Silverlight.
Il permet en plus d'appliquer le ViewModel pattern aux applications Silverlight, ce qui permet d'écrire des tests unitaires automatisés sur les modèles.
Liens: consultant Silverlight, formation Silverlight, freelance Silverlight.
Comments