Découvrez la WebPart de transformation XSL du framework SharePointOfView
Le projet CodePlex SharePointOfView propose un framework pour les développeurs SharePoint. Entres autres, des classes de base pour les WebParts. Vous retrouverez la WebPartBase, déjà présentée précédemment, mais également une WebPart de transformation XSL nommée tout naturellement XSLTransformWebPart.
Pourquoi une WebPart de transformation XSL ?
Depuis SharePoint 2003 (et sur les conseils de Gat), j'utilise de très souvent la transformation XSL dans mes WebParts. Dans la version 2007, on en retrouve d'ailleurs un peu partout. La transformation XSL présente de nombreux avantages dans SharePoint :
D'une part, le XSL en lui même peut être stocké de plusieurs façons différentes :
- Directement en paramètre de la WebPart,
- Sous forme de fichier externe,
- Sous forme de fichier dans une bibliothèque SharePoint (auquel cas on bénéficie même de versionning sur le XSL).
D'autre part, les modifications demandées par le client qui veut toujours une petite adaptation après la mise en prod deviennent bien plus simples, puisqu'il suffit juste de modifier un paramètre ou un fichier. Pas d'interruption de service non plus, puisque le code ne change pas.
D'autre part, le rendu XSL peut être travaillé par une autre personne que le ou les développeurs SharePoint. Lorsque l'équipe qui travaille sur un projet commence à être de bonne taille (qui a dit plus d'une personne ?), cette possibilité de découpage peut s'avérer très utile.
XslTransformWebPart ("...and in the darkness bind them.")
La WebPart de transformation XSL permet donc de séparer le fond de la forme. Le mécanisme gérant la forme étant identique d'une WebPart à l'autre, autant le centraliser dans une seule et même WebPart. Les différences d'affichage se font en modifiant la valeur de la propriété XSL.
Côté fond, il vous suffira d'hériter de la WebPart XSLTransformWebPart puis de surcharger la méthode GetData() pour reccupérer vos données sous forme XML.
L'appel à la méthode GetData ainsi que la transformation XSL est faite depuis la méthode OnPreRender de la WebPart. L'affichage se fait quand à lui avec la méthode RenderWebPart issue de la WebPartBase, évidemment. Ce qui implique du même coup la gestion d'erreur dans la WebPart de transformation XSL. Enfin, cette WebPart est entièrement localisée, aussi bien en ce qui concerne les messages que la WebPart peut elle même afficher, qu'en ce qui concerne les propriétés de l'EditorPart. A ce jour, les ressources gérées sont l'anglais et le français.
CAMLQueryWebPart : Sample de transformation XSL
Pour illuster cette WebPart, le projet SharePointOfView.Samples met à disposition une WebPart de requête CAML héritant de la classe XSLTransformWebPart. Cette WebPart de requête CAML se contente de réaliser la requête dans la méthode GetData() d'une manière similaire au code présenté ci dessous :
protected override string GetData()
{
SPQuery camlQuery= new SPQuery();
camlQuery.Query = ""; // requête CAML attendue
SPList list = SPContext.Current.Web.GetListFromUrl(ListURL);
return list.GetItems(camlQuery).Xml;
}
Vous pourrez donc utiliser ce sample pour tester la WebPart XslTransformWebPart.
Le tout en images
Comme pour la WebPart précédente, j'ai réalisé une vidéo présentant les points essentiels de la WebPart. Je vous invite à consulter ces quelques minutes de présentation :
N'oubliez pas que le projet SharePointOfView reste ouvert à ceux qui souhaitent contribuer au projet.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :