Activation du Developer Dashboard

Description du Developer Dashboard

Le Developer Dashboard est une nouvelle fonctionnalité introduite par Microsoft dans SharePoint 2010. Son objectif est d’aider le développeur à déboguer ses pages, à diagnostiquer l’origine de lenteur, etc.

Le Developer Dashboard propose trois niveaux d’affichage :

  • On : toujours visible
  • Off : toujours masqué
  • OnDemand: s’ouvre/se ferme à la demande

Le Developer Dashboard peut également être restreint aux utilisateurs en appliquant un masque de permission (du type SPBasePermissions). La plupart du temps on mettra FullMask, car c’est très orienté développeur (qui a la plupart du temps tous les droits sur le poste de développement).

Plus de détails sur la page MSDN Using the Developer Dashboard.

Activer le Developer Dashboard

Plusieurs possibilités s’offrent à vous pour activer le Developer Dashboard : Continue reading

Rating 5.00 out of 5
[?]

SharePoint : RunWithElevatedPrivileges, attention à la portée des variables

Lorsque votre code SharePoint doit exécuter des actions pour lesquelles l’utilisateur n’a pas les droits, vous pouvez utiliser la méthode SPSecurity.RunWithElevatedPrivileges. Cette dernière attend un delegate en argument. Le delegate est alors appelé sans restriction d’autorisation, au lieu de brider les appels aux autorisations de l’utilisateur connecté. Bien entendu à utiliser avec précaution, pensez à bien verrouiller la portée de votre code.

Toutefois, l’utilisation de cette méthode peut amener quelques surprise. Par exemple, j’ai sur un de mes site SharePoint un groupe dont l’option « Qui peut consulter l’appartenance au groupe? » est positionnée sur « Membres du groupe ». Ainsi, un utilisateur non administrateur ne peut consulter les membres de ce groupe. Si dans votre code, vous devez découvrir les membres de ce groupe (on peut imaginer un scénario ou on a un groupe de personne responsable d’une étape de workflow, sans que les utilisateurs les connaissent), vous écrirez naturellement le code suivant : Continue reading

Rating 3.50 out of 5
[?]

SharePoint : AllowUnsafeUpdate simplifié

Voici une petite classe d’extension qui permet d’avoir une gestion plus simple de la propriété AllowUnsafeUpdate de la classe SPWeb :

L’idée est de détourner l’utilisation de l’interface IDisposable pour pouvoir utiliser un bloc « using » :

Trois avantages à ce pattern :

  • c’est plus lisible qu’une succession d’appels à la propriété AllowUnsafeUpdate et à la méthode Update()
  • en cas d’exception, la méthode Dispose est garantie d’être appelée… on s’épargne un Finnaly
  • le code gère l’état avant appel de la propriété AllowUnsafeUpdate en la sauvegardant.

On pourrait aussi imaginer l’utilisation d’une méthode qui reçoit un délégué, mais je trouve qu’est c’est un petit peu lourd à appeler par rapport au using.

Rating 3.00 out of 5
[?]

SharePoint : ajouter un webpart depuis une feature ?

Pour un de mes clients, j’ai été confronté à la difficulté suivante : comment, depuis une feature, instancier un web part sur la page d’accueil ?

En effet, un de mes features fournit web part spécifique, et je souhaite, à l’activation de la feature, qu’un exemplaire de ce dernier soit disponible sur la page d’accueil.

Tout aurait été simple si je déployait un nouvelle page. En effet, lorsque vous déployez une page, vous le faite via un module. Et dans un module, vous définissez un fichier à déployer :

Ici le noeud « AllUsersWebPart » permet d’ajouter un webpart à un page que vous êtes entrain de déployer. Comment faire alors pour une page existante, comme par exemple le fichier default.aspx ? Continue reading

Rating 3.50 out of 5
[?]

SharePoint : un web part qui ne s’affiche qu’avec certaines permissions ?

Voici un petit peu de code qui vous aidera à créer un WebPart qui ne s’affiche que si on dispose de certaines autorisations.

L’exemple typique est l’ajout d’un menu « gestionnaire » qui affiche certaines opérations/liens.

Ici, je vous montre un webpart qui permet d’afficher un lien vers un tableau de bord (dashboard.aspx) seulement si l’utilisateur connecté dispose de l’autorisation demandée :

L’astuce consiste à utiliser la propriété Hidden du WebPart plutôt que la propriété Visible. Si vous essayez de modifier cette dernière, vous aurez une erreur du genre :

[text]The Visible property cannot be set on Web Part XXXX. It can only be set on a standalone Web Part[/text]
Après déploiement du webpart, vous pouvez le poser sur une page de composant WebPart classique. Dans les propriétés de ce WebPart, dans la catégorie Divers, la sélection de l’autorisation nécessaire s’affiche :

Il suffit alors de sélectionner la permission requise pour afficher le web part.

Ce code est simpliste et ne sert qu’à montrer le principe. En production, on créera le webpart avec des règles métiers qui déterminent l’affichage, ou alors avec un ToolPart plus ergonomique, etc.

A noter que le webpart ici ne sécurise en rien la cible du lien… il ne fait qu’afficher ou non un lien !

Rating 3.00 out of 5
[?]

SharePoint 2007 : personnaliser le comportement par défaut d’un type de colonne natif

SharePoint 2007 fournit un certain nombre de types de colonne natif. Vous pouvez également en créer de nouveau si vous avez des besoins spécifiques, en héritant de SPField ou de l’une de ses dérivées (et en avalant un cachet d’aspirine avant de lire la doc).

Toutefois cette approche pose quelques inconvénients :

  • Un peu complexe (mais bon, c’est notre pain quotidien de développeur SharePoint la complexité)
  • Impossible de « convertir » votre colonne depuis ou vers une colonne native
  • Les outils tiers ne reconnaitrons pas votre colonne
  • quelques bugs qui trainent dans SharePoint (je pense à la page de propriété qui ne sait pas conserver les données et qui impose de réécrire cette page à chaque fois)

Je vous propose ici une alternative, elle aussi un peu complexe, mais qui a l’avantage de conserver les colonnes natives, en changeant simplement leur rendu.

Continue reading

Rating 5.00 out of 5
[?]